Troubleshoot a SQL Crash
- Last Updated: January 17, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
When a SQL process terminates abnormally, it automatically creates a text file named protrace.<pid> in the current working directory of the database.
To help identify and diagnose the root cause of an SQL crash, the relevant SQL query is captured in the protrace.<pid> file along with additional information required for debugging such as User name, Database Name and so on.
Example on Linux
command line not initialized
#1 [0xa43540] dbut_uttraceback+0x15f from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#2 [0xa43139] dbut_uttrace+0x1f4 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#3 [0xa16d64] dbExit+0x42 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#4 [0x9c438d] drSigFatal+0x11f from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#5 [0xd58326a0] __rpc_thread_destroy+0xffef1230 from /lib64/libc.so.6
#6 [0xd600f6ab] _fini+0xffffe4bb from /lib64/libpthread.so.0
#7 [0x812a07] _ZL14dt_fpe_handlerv+0x57 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#8 [0xd58326a0] __rpc_thread_destroy+0xffef1230 from /lib64/libc.so.6
#9 [0x4986d9] _ZN9rds_env_t12crash_serverE11sqlm_type_t+0xa3 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#10 [0x4f3ce3] _Z8ssm_openP9rds_env_tPKcP12sql_stmuid_thS2_S2_P5sqldaP5sqlcaS2_+0x1122 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#11 [0x4bfc73] sql_fn+0x9c7 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#12 [0x90ec62] _ZN14cursor_reply_t15process_requestEv+0x306 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#13 [0x90dc00] _ZN14server_reply_t13execute_replyEPPhPi+0x10a from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#14 [0x90e942] _ZN14cursor_reply_t7executeEPhPS0_PiS2_11sqlm_type_t+0x72 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#15 [0x90cb50] _ZN12srv_nw_hdl_t13dsn_listen_10EiPvP10svr_args_t+0x890 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#16 [0x7dd503] dmn_main+0x121 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#17 [0x430dad] _Z14run_sql_threadPv+0x285 from /vobs_sql/sql/linuxx86_64/bin/_sqlsrv2
#18 [0xd6007aa1] _fini+0xffff68b1 from /lib64/libpthread.so.0
Following SQL Query resulted in the crash:
Select e.Employee_id, e.Employee_name, e.Department_id
,d.Department_id, d.Department_name
from Employee e
Left Outer join Department d on
(Select Department_id from Employee where Employee_id=1)=
(Select Department_id from Department where Department_name='Crew');
Additional information:
User Name: hum
DB Name: testdb
Schema Name: HUM
Catalog Name: TESTDB
Audit Status : DISABLED
Authorised Data Truncation Status: OFF
Example on Windows
//=====================================================
PROGRESS stack trace as of
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
0132F9F0 0439EA90 rds_env_t::crash_server+<offset>
013416C3 0439EAE8 ssm_close+<offset>
0135EC21 0439F17C sql_fn+<offset>
015B31F0 0439F570 cursor_reply_t::process_request+<offset>
015B2AA1 0439F958 server_reply_t::execute_reply+<offset>
015B37A7 0439F96C connect_reply_t::execute+<offset>
015AF602 0439F9EC srv_nw_hdl_t::dsn_listen_10+<offset>
01550872 0439FA28 dmn_main+<offset>
012F9FC8 0439FAD4 run_sql_thread+<offset>
7485FEFF 0439FB10 o__CIpow+<offset>
773562C4 0439FB24 BaseThreadInitThunk+<offset>
77C01E39 0439FB6C RtlSubscribeWnfStateChangeNotification+<offset>
77C01E04 0439FB7C RtlSubscribeWnfStateChangeNotification+<offset>
Following SQL Query resulted in the crash:
select count(*) from pub.customer
where name != 'crash_at_close_with_segv.sql'
Additional information:
User Name: hum
DB Name: testdb
Schema Name: HUM
Catalog Name: TESTDB
Audit Status : DISABLED
Authorised Data Truncation Status: OFF