The list below is restricted to show only bugs believed to affect version 11.2.0.4. Other bugs may affect this version but have not been confirmed as being relevant yet.
Two processes may concurrently load same data block.
The following internal errors can be seen as side effects of this bug:
- ORA-07445 [kgllkdl()+819]
- ORA-00600 [kss_get_type: bad control]
- ORA-07445 [kglhdda()+1276]
- ORA-00600 [kglhdda-bad-free]
These internal errors are raised when Oracle is attempting to release the
library cache lock on a cursor.
Rediscovery Notes
Lack mutex recovery might be seen if a process were to die after grabbing
handle mutex from location kglml_kglllal1. Due to that, it may so happen
that 2 processes may land up owing (X-mode) load-lock over same object at
the same time.
Workaround
NONE
This is a diagnostic enhancement to allow tighter checking of certain optimizer operations
to help detect SGA memory corruption issues sooner.
If the database sees errors like above with indications of SGA memory corruption then this
fix may help identify the problem. The diagnostic is controlled by event 10979 and
should only be enabled under guidance of Oracle Support.
Note:
This is not a fix for the memory corruption issue, but rather a diagnostic to help try and
isolate the root cause.
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.
References
Bug:25524955 (This link will only work for PUBLISHED bugs) Note:245840.1 Information on the sections in this article
Shared pool memory corruptions could occur, causing instance crashes.
This issue has been introduced in 11.2.0.4 or greater.
Rediscovery Notes
A corruption occurs in the shared pool. This can result in any of a
variety of crashes and internal errors (a few are listed below). The key
to this particular case of corruption is that it is the bad data looks
as if someone added to what the value should have been. Ideally, two
consecutive words should be corrupted that way. For example, in the case
of a ORA_600 [17147] internal error from kghfrmrg, the trace file might show
"NEXT CHUNK'S PREVIOUS POINTER NOT POINTING TO CURRENT CHUNK" with
specifically:
size and magic backpointer
Examples of errors:
In kgl or kks:
ORA-7445 [kgllkdl()+892]
ORA-7445 [kglUnLock()+156]
ORA-7445 [kglobfr()+879]
ORA-600 [kglhpd-bad-free]
ORA-600 [kgllkdl-bad-lock]
ORA-600 [kglUnLock-bad-lock]
ORA-7445 [kglGetMutex()+132]
ORA-600 [kglbrk-bad-lock]
ORA-7445 [kglnpfr()+32]
ORA-600 [kglLockOwnersListDelete]
ORA-600 [kgllkdl-bad-session]
ORA 7445 [kglhpd()+77]
ORA-7445 [kglIsHandleMutexHeld()+4]
ORA-7445 [kglrfcl()+598]
ORA-600 [kglpnal-bad-pinid]
ORA-7445 [kksParentHandleFreeCbk()+69
In kgh:
ORA-600 [kghfrmrg:nxt]
ORA-600 [kghfrmrg:prv]
ORA-7445 [kghfrmrg()+2541],
ORA-7445 [kghlru()+48]
ORA-7445 [kghfre()+2368] stack showing kghungex
ORA-600 [17182]
ORA-600 [17112]
ORA-600 [17147]
ORA-600 [kghfrh:ds]
ORA-600 [17163]
ORA-600 [17110]
Other:
ORA-600 [kss_get_type: bad control] corrupted state object related to library lock
ORA-7445 [ksfhlt()+29] stack showing kgh
ORA-7445 [ksfglt()+72] stack showing kgh
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.
References
Bug:22243719 (This link will only work for PUBLISHED bugs) Note:245840.1 Information on the sections in this article
This fix has been superseded - please see the fixed version information for Bug:19578350 . The box below only shows versions where the code change/s for 18190297 are first included - those versions may not contain the later improved fix.
In rare cases PMON can crash the instance with ORA-7445 [kgllkdl] or similar when
cleaning up a dead process. The ORA-7445 could also occur in a user process
prior to PMON failing.
Rediscovery Notes:
If you see all of the following, you may be hitting this bug:
- ORA-7445 in kgllkdl in PMON
- Before the error there is signs of "KGX cleanup..." occuring, in particular
with "oper=6" in the cleanup and pt2 pointing to a library cache lock address.
eg:
KGX cleanup...
KGX Atomic Operation Log 0x3d7ffba188
Mutex 0x43492dd4c8(133, 0) idn 60dc5721 oper EXCL
Library Cache uid 133 efd 6 whr 85 slp 0
oper=6 pt1=(nil) pt2=0x40ac953c48 pt3=(nil)
^- oper is 6 and pt2 has a lock address
- In the processstate of the session being cleaned the library cache
lock with address "pt2" has a nonsense value for the Handle it points
at.
eg:
LibraryObjectLock: Address=0x40ac953c48 Handle=0x3ec589cd60
^ pt2 value bad handle^
- The trace may dump a handle at that address but the content of
the handle looks all wrong. This is likely to need Oracle Support to view
the traces to confirm.
Workaround
None
Note:
This fix is superseded by the fix in bug 19578350 - for interim patches use that
fix instead of this one to address both issues.
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.
References
Bug:18190297 (This link will only work for PUBLISHED bugs) Note:245840.1 Information on the sections in this article
If a killed or idle sniped session fails with an ORA-7445 or ORA-600 or similar then it is possible
(in rare scenarios) for the failed session process to cause an SGA memory corruption while writing
out trace information. This can occur as the failed session may attempt to use stale private
pointers into SGA space during the trace output. The SGA corruption caused can show
up as various errors including, but not limited to, ORA-7445 [kqrfrpo], ORA-00600[kqrfrpo]
or ORA-7445[kgllkdl].
Rediscovery Notes
In the main identified case for this issue the memory corruption shows as a single byte
"0x00" trample on some SGA structure. This in turn can show up as any of a number of
different ORA-600 or ORA-7445 depending on which byte of memory gets corrupted.
If an SGA memory corruption looks to be a single byte "0x00" trample then check for
an indication of a tracefile from a killed session from just before the corruption is
seen. In that tracefile check if the PROCESS state object shows something like:
flags_idl: (0x2) -/TBD/-/-/-/-
If the process writing trace is marked TBD (like above) and the trace also shows
session cursor information (lines beginning with "Cursor#") writing out information
from the library cache then the memory corruption may be due to this issue,
especially if the trace also includes "KGX cleanup..." information.
Workaround
Once there is an SGA corruption in place you are likely to need to restart the instance
to clear it.
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.
References
Bug:17842825 (This link will only work for PUBLISHED bugs) Note:245840.1 Information on the sections in this article