Description
When the tdm_arkcmp executable is unavailable on a Trafodion node due to a file system error, we get the following less-than-informative error:
>>create schema scythians;
- ERROR[2012] Server process tdm_arkcmp could not be created on
NSK - Operating system error 4022, TPCError = 53, error detail = 0. (See variants of Seabed procedure msg_mon_start_process for details).
- ERROR[2013] Server process tdm_arkcmp could not be created on
NSK - Operating system error 4022.
- ERROR[2002] Internal error: cannot create compiler.
- ERROR[8822] The statement was not prepared.
— SQL operation failed with errors.
>>
We get a similarly uninformative series of errors when the tdm_arkesp executable is unavailable:
>>prepare s1 from select * From t1 where b = 6;
— SQL command prepared.
>>explain options 'f' s1;
LC RC OP OPERATOR OPT DESCRIPTION CARD
---- ---- ---- -------------------- -------- -------------------- ---------
2 . 3 root 1.30E+004
1 . 2 esp_exchange 1:2(hash2) 1.30E+004
. . 1 trafodion_scan T1 1.30E+004
— SQL operation complete.
>>execute s1;
- ERROR[2012] Server process tdm_arkesp could not be created on \NSK cpu 0 - Operating system error 4022, TPCError = 53, error detail = 0. (See variants of Seabed procedure msg_mon_start_process for details).
- ERROR[2013] Server process tdm_arkesp could not be created on \NSK cpu 0 - Operating system error 4022.
- ERROR[2012] Server process tdm_arkesp could not be created on \NSK cpu 0 - Operating system error 4022, TPCError = 53, error detail = 0. (See variants of Seabed procedure msg_mon_start_process for details).
— 0 row(s) selected.
>>
Among the issues with these error messages:
- They do not give the correct node name where we were trying to create the process, but instead report NSK.
- Error 2013 is completely redundant; everything it says is in error 2012.
- Error 2012 could be much more informative. Text could be added explaining the meaning of the error codes given.
- In the tdm_arkcmp case, error 2002 adds no information at all.
To reproduce these issues on a development instance, first create a table T1 with one million rows (so a parallel plan will be picked for the tdm_arkesp example). Then go to the trafodion/core/sql/lib/linux/64bit/debug directory and rename the tdm_arkcmp and tdm_arkesp executables to something else. Try any DDL command to get the tdm_arkcmp failure. Try any parallel DML statement to get the tdm_arkesp failure.
It is likely that similar issues exist for other processes, e.g. tdm_udrserv.
Attachments
Issue Links
- links to