Last updated on FEBRUARY 07, 2014
Applies to:Oracle Database - Enterprise Edition - Version 188.8.131.52 to 184.108.40.206 [Release 11.1 to 11.2]
Information in this document applies to any platform.
Checked for currency 28 September 2012
After having applied <patch:9243912> to resolve ORA-3137  errors, we are instead seeing the following error being raised:
ORA-00600: internal error code, arguments: [kpobav-1], [0x83DCF294], , ...
However, we are no longer getting the ORA-3137  errors.
If we disable optimizer bind peeking by setting "_optim_peek_user_binds"=false we no longer get the ORA-600.
The call stack from the ORA-600 is similar to:
... kpobav opibvg kxsPeekBinds kkscsCompareBinds kkscscid_bnd_eval ...
From looking at the diagnostics in the ORA-600 trace file, we find the current cursor in the "Session Cursor Dump" section, eg.:
----- Session Cursor Dump -----
Current cursor: 122, pgadep=1
Then we find the dump of the current cursor, ie. the section starting with "Cursor#<number>", ie.:
Cursor#122(0xb6d1dfc8) state=BOUND curiob=0xb67d64b8
curflg=cd fl2=0 par=(nil) ses=0x9c3b6e20
In this section, we search for the value of "fl2" in the line starting with "xscflg", ie.:
xscflg=190472 fl2=51120000 fl3=22a0100 fl4=380
this value will have the 0x10000000 bit set (this is the KXSCFBPE flag).
In the cursor section we then search for the address of "ctx", ie.:
clk=0x5e7dd5b8 ci=0x6c372968 pn=0x6ddaa9c8 ctx=0x83dcf294
Note that the address for ctx is the one provided via the 2nd argument of the ORA-600.
We need to find the value of "ctxflg" which is part of the structure for "ctx" - on 64-bit platforms the offset of ctxflg is 0x60 (ie. the address of this variable will be at 0x83dcf294 + 0x60 = 0x83dcf2f4) and on 32-bit platforms the offset is 0x40 (ie. the address of this variable will be at 0x83dcf294 + 0x40 = 0x83dcf2d4).
The example used is for a 32-bit platform, so from the memory dump in the trace file we find the value at address 0x83dcf2d4:
83DCF2C0 00000000 00030000 00000000 00000000 [................]
83DCF2D0 83DCF130 00000108 08000000 0C000000 [0...............]
ie. ctxflg has the value 0x108. The important thing here is to confirm that the 0x10 bit (which is the CTXFTCA flag) is not set.
So in summary we have the following symptoms:
- Oracle RDBMS 220.127.116.11
- <Patch:9243912> has been applied
- The call stack has: ... kpobav opibvg kxsPeekBinds kkscsCompareBinds ...
- Setting "_optim_peek_user_binds"=false will prevent the error
- The KXSCFBPE flag is set
- The CTXFTCA flag is not set
<Patch:9243912> was applied
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
Million Knowledge Articles and hundreds of Community platforms