ORA-00600 [17059]: How to determine the reason for "sharing failure(s)" as reported by a trace file (Doc ID 1457907.1)

Last updated on NOVEMBER 28, 2016

Applies to:

Oracle Database - Enterprise Edition - Version 8.0.3.0 to 12.1.0.1 [Release 8.0.3 to 12.1]
Information in this document applies to any platform.

Goal

Translating a sharing failure to its reason is very essential to determine the problem cause for errors such as

ORA-00600 [17059]
ORA-00600 [kksfbc-reparse-infinite-loop]

 

There are several ORA-00600 errors situation which would also report such sharing failure(s) in a trace
file, however the above ones are the most popular ones.

Oracle maintains a bit vector to store cursor sharing state.
Whenever a cursor sharing issue occurs and the bit vector is set the
resultant trace file will contain details about the cursor sharing issue.   

The resultant trace file will contains details about the reason of
the sharing failure.

To check this, open the trace file and determine the current cursor:

----- Session Cursor Dump -----
Current cursor: 17, pgadep=0

Now, search for cursor #17:

Cursor#17(800003f880031d90) state=SYNTAX curiob=800003f7c003bd18
curflg=cd fl2=0 par=0000000000000000 ses=c000000257409d98
sqltxt(c0000002566cfa78)=SELECT MAX(TA_PERIOD) FROM SRV_DRCR_DEVICE
 hash=b7bcf5a52ccb0275388569f98e129aad
 parent=c000000248bf3408 maxchild=108 plk=c00000022e94c7a8 ppn=n
cursor instantiation=800003f7c003bd18 used=1236994347
child#101(0000000000000000) pcs=c0000001d56e84e0
 clk=0000000000000000 ci=0000000000000000 pn=0000000000000000 ctx=0000000000000000
kgsccflg=0 llk[800003f7c003bd20,800003f7c003bd20] idx=0
xscflg=400024 fl2=40000000 fl3=2882080 fl4=2000
sharing failure(s)=82000


  

Solution

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms