My Oracle Support Banner

ODP is terminated with storage violation (signal 11) leaving in-doubt transactions and client receives oci-24550 (Doc ID 2379491.1)

Last updated on AUGUST 31, 2023

Applies to:

Oracle Database Provider for DRDA - Version 12.1.0.2 to 12.2.0.1 [Release 12.1 to 12.2]
Information in this document applies to any platform.

Symptoms

When connecting from DB2 (11.1) on z/OS through ODP 12.1.0.2 (or ODP 12.2.0.1) to Oracle 12.1 Database, an signal 11 (si_signo=11) storage violation was received and ODP terminates with oci-24550 which contains an incident trace of the ODP call stack.

After ODP crashed with signal 11 (oci-24550), this left in-doubt transactions (DBA_2PC_PENDING).

ODP Client trace:

Trace file /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/trace/pp_32592_drdaas.trc
DDE: Flood control is not active
Incident 23481 created, dump file: /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/incident/incdir_23481/pp_32592_i23481.trc
oci-24550 [11] [[si_signo=11] [si_errno=0] [si_code=1] [si_int=40600752] [si_ptr=0x26b84b0] [si_addr=0x2]] [] [] [] [] [] [] [] [] [] []

Incident trace of the ODP call stack:

Dump file /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/incident/incdir_23481/pp_32592_i23481.trc
[TOC00000]
Jump to table of contents
Dump continued from file: /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/trace/pp_32592_drdaas.trc
[TOC00001]
oci-24550 [11] [[si_signo=11] [si_errno=0] [si_code=1] [si_int=40600752] [si_ptr=0x26b84b0] [si_addr=0x2]] [] [] [] [] [] [] [] [] [] []
[TOC00001-END]
[TOC00002]
========= Dump for incident 23481 (oci 24550) ========
Starting a Diag Context default dump (level=3)


----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------
dbgc_dmp()+145       call     kgdsdst()            7FFDC87B8050 000000003 7FFDC8799AC0 ? 7FFDC8799BD8 ? 7FFDC87B78B8 ? 000000083 ?
dbgexPhaseII()+1845  call     dbgc_dmp()           7FC52C68E7E0 7FC52C68EB00 7FFDC8799AC0 ? 7FFDC8799BD8 ? 7FFDC87B78B8 ? 000000083 ?
dbgexProcessError()+2539  call     dbgexPhaseII()       00261AAE0 002633270 7FFDC87BC230 7FFDC8799BD8 ? 7FFDC87B78B8 ? 000000083 ?
dbgeExecuteForError()+110  call     dbgexProcessError()  00261AAE0 002633270 000000000 000000000 7FFDC87B78B8 ? 000000083 ?
dbgePostErrorDirect()+2230  call     dbgeExecuteForError()  00261AAE0 002633270 000000000 000000000 000000000 000000083 ?
kpeDbgSignalHandler()+302  call     dbgePostErrorDirect()  00261AAE0 ? 002633270 ? 000000000 ? 000000000 ? 00000000 ? 000000000
skgesig_sigactionHandler()+229  call     kpeDbgSignalHandler()  00261AAE0 7FC52CC7ABEC 000000000 ? 000000000 ? 000000000 ? 000000000 ?
__sighandler()       call     skgesig_sigactionHandler()  000000400 000000000 000000000 000000000 ? 000000000 ? 000000000 ?
__intel_ssse3_rep_memcpy()+10806  signal   __sighandler()       0026BC698 000000000 7FC52B843F06 000000000 ? 000000018 ? 101010101010101 ?
_intel_fast_memcpy.P()+6  call     __intel_ssse3_rep_memcpy()  0026BC698 ? 000000000 ? 7FC52B843F06 ? 000000000 ? 000000018 ? 101010101010101 ?
dpsadacopyvaltoval()+75  call     _intel_fast_memcpy.P()  0026BC698 ? 000000000 7FC52B843F06 ? 000000000 ? 000000018 ? 101010101010101 ?
dpsadrsynclog()+3585  call     dpsadacopyvaltoval()  0026B84B0 0026BA380 00275CFB0 0026BCA00 000000018 ? 101010101010101 ?
dpsadrsyncctl()+6364  call     dpsadrsynclog()      0026B84B0 7FFDC87BEC68 0026BA380 00274B198 0026BC9E0 101010101010101 ?
dpsaaptwep_PpTaskWorkEntryPoint()+1647  call     dpsadrsyncctl()      0026BC340 000000000 0026F0F38 00274B198 ? 0026BC9E0 ? 101010101010101 ?

ODP trace:

Trace file /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/trace/pp_51156_drdaas.trc
Entering dpstscal, TX= 0x10fd048 at 2018-02-23 13:05:49.419594000
Entering dpsiocc, TX= 0x10fd048 at 2018-02-23 13:05:49.419763000
===
DSSRQS: Calling Requester Exchange Server Attributes
Entering dpsadrexcsat at 2018-02-23 13:05:49.423276000
MyMemoryAlloc(4280) => 0x12156b0

===
DSSRQS: Calling Requester Sync Point Control
Entering dpsadrsyncctl at 2018-02-23 13:05:49.534974000
-container 1055 "SYNCCTL"
-insvar 1187 "synctype"
-synctype 01
-container 106F "SYNCLOG"
SYNCCTL: Beginning UOWSTATE: 01 (RESET)
SYNCCTL: SYNCTYPE Operation: 01 (PREP2COMM)
SYNCCTL: PREP2COMM
Entering dpsadcsrca_CursorCloseAll, mode= 8206 at 2018-02-23 13:05:49.535030000
Exiting  dpsadcsrca_CursorCloseAll, RC= 0 at 2018-02-23 13:05:49.535046000
Entering dpsadcsrldfa_LobDescFreeAll, mode= 8206 at 2018-02-23 13:05:49.535065000
Exiting  dpsadcsrldfa_LobDescFreeAll, RC= 0 at 2018-02-23 13:05:49.535079000
Entering dpsadcsrfa_CursorFreeAll, mode= 8206 at 2018-02-23 13:05:49.535090000
Entering dpsadcsrf_CursorFree, Cursor= 0x12cc568 at 2018-02-23 13:05:49.535101000
OCIStmtRelease(0x12cc568[0x12d4948]) -> RC=0
Entering dpsadcsru_CursorUnhash, Cursor= 0x12cc568 at 2018-02-23 13:05:49.535126000
Exiting  dpsadcsru_CursorUnhash, RC= 0 at 2018-02-23 13:05:49.535139000
Exiting  dpsadcsrf_CursorFree, RC= 0 at 2018-02-23 13:05:49.535151000
Exiting  dpsadcsrfa_CursorFreeAll, RC= 0 at 2018-02-23 13:05:49.535162000
OCIAttrGet(h0x125f5a0,OCIT_ATTR_END_OF_CALL_STATUS) -> RC=0 (flag=00000003)
SYNCCTL: skipping OCITransPrepare
Entering dpsadrsynclog at 2018-02-23 13:05:49.535183000  
-insvar 1184 "logname"
DDE: Flood control is not active
Incident 41 created, dump file: /u01/app/oracle/product/12.1.0/tghome_1/log/diag/dps/drdaas/drdaproc/incident/incdir_41/pp_51156_i41.trc
oci-24550 [11] [[si_signo=11] [si_errno=0] [si_code=1] [si_int=4352] [si_ptr=0x1100] [si_addr=0x2]] [] [] [] [] [] [] [] [] [] []

 

The error is generated as follows:

- When making a SELECT for any table from DB2 through DRDA and SPUFI (SELECT FROM an alias for a Oracle table in DB2)
- The SELECT sentence returns all the data registers from the query on the screen in a proper way but an TCP/IP error is returned at the end.
- An oci-24550 error is produced in ODP Gateway as an incident.
- Three seconds later, an in-doubt transaction in prepared state remains in the Oracle Database, which comes from ODP Gateway server.
- After tracing communications between DB2 client and ODP Gateway where the DB2 client established the connection, it's the ODP Gateway which closes it.
- This only happens for one of six partitions in our DB2 system and the query works in the other partitions.
- When we trace communications between DB2 client and ODP Gateway for a partition where the error doesn't occur, it's the DB2 client that opens and closes the TCP/IP connection.

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.