Oracle 19.1 or 19.4 on AIX ,There are cases where this error has occurred, An instance terminated because a DBWR raised ORA-600[kjcsmpav:1] during a buffer allocation.
ORA-600: internal error code, arguments: [kjcsmpav:1], [0x7000xxxxxxx], [4], [0], [211], [220], [], [], [], [], [],
kjcsmpav ==> KJC message pool free list allocate a msg buffer,which is a RAC ralated latch dealing with the Kerel Job Control message pool(Global Enqueue Services),
It tried to allocate a message from the message pool mp. Before it sets the OPID of the process 220, to the KJCSMP_OPID(mp) to exclude
the other processes, someone else, the process 211 already had the message pool mp.
Call stack
dbgexPopulateIncCtx <-dbgexProcessError <-dbgeExecuteForError <-
dbgePostErrorKGE <-dbkePostKGE_kgsf
<-kgeadse <-kgerinv_internal <-kgerinv <-kgeasnmierr <-kjcsmpav
<-kjcssba_prealloc <-kjccgmb_prealloc_wLoc <-kjbenterdlmnw <-KCLENTERNAME_NW <-kclenterblk_nw
<-kclenterb_nw <-kcbbic1_int <-kcbbic1 <-kcbbiop <-kcbbdrv
<-ksb_act_run_int <-ksb_act_run <-ksbabs <-ksbrdp <-opirip
<-opidrv <-sou2o <-opimai_real <-ssthrdmain <-main
<-start
kgeadse kernel generic error KGE ADd String Internal Error onto the error stack [partial hit for: kgeadse ]
kgerinv_internal kernel generic error record internal named error with va_list or soft internal named error [partial hit for: kgerinv_internal ]
kgerinv kernel generic error record internal named error with va_list [partial hit for: kgerinv ]
kgeasnmierr kernel generic error assert named internal error [partial hit for: kgeasnmierr ]
kjcsmpav kernel lock management communication [partial hit for: kjc ]
kjcssba_prealloc kernel lock management communication [partial hit for: kjc ]
kjccgmb_prealloc_wLoc kernel lock management communication [partial hit for: kjc ]
kjbenterdlmnw kernel lock management global cache service [partial hit for: kjb ]
kclenterNAME_NW kernel cache lock manager/buffer cache [partial hit for: kcl ]
kclenterblk_nw kernel cache lock manager/buffer cache [partial hit for: kcl ]
kclenterb_nw kernel cache lock manager/buffer cache [partial hit for: kcl ]
kcbbic1_int kernel cache buffers databasewriter [partial hit for: kcbb ]
kcbbic1 kernel cache buffers databasewriter [partial hit for: kcbb ]
kcbbiop kernel cache buffers databasewriter [partial hit for: kcbb ]
kcbbdrv kernel cache buffers databasewriter central write driver [partial hit for: kcbbdrv ]
ksb_act_run_int kernel service background processes [partial hit for: ksb ]
ksb_act_run kernel service background processes [partial hit for: ksb ]
ksbabs kernel service background processes action based server [partial hit for: ksbabs ]
ksbrdp kernel service background processes run a detached background process [partial hit for: ksbrdp ]
-- define in rdbms/src/server/ccl/dlm/kjcs.c
/* get message pool allocation latch */
/* get from the kgh pool if needed and allowed */
if (allocm < total_alloc && /* mb still needed? */
KJCSMP_MFLT(mp)) /* Free lists allocated (ie not reserve pool) */
alloc_new = TRUE;
KJASSERTF5(KJCSMP_OPID(mp) == 0,
OERINM("kjcsmpav:1"),
This should be a logic problem of the program code. At present, the final bug number has not been confirmed. Only Bug 30486436 records the problem.