ORA-600(kgscLogOff-notempty)错误

客户的10.2.0.2环境在告警日志中出现这个错误。
错误信息为:

Thu Oct 27 21:18:03 2011
Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_27896.trc:
ORA-00600: internal error code, arguments: [kgscLogOff-notempty], [1], [], [], [], [], [], []
Thu Oct 27 21:18:05 2011
Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_27896.trc:
ORA-00600: internal error code, arguments: [kgscLogOff-notempty], [1], [], [], [], [], [], []
ORA-00081: address range [0x6000000000127430, 0x6000000000127434) IS NOT readable
ORA-00600: internal error code, arguments: [kgscLogOff-notempty], [1], [], [], [], [], [], []

查询MOS发现这个bug是在会话LOG OFF的时候报错。其实从错误信息中也可以看到这一点。

*** SERVICE NAME:(SYS$USERS) 2011-10-27 21:18:03.874
*** SESSION ID:(488.65460) 2011-10-27 21:18:03.874
*** 2011-10-27 21:18:03.874
ksedmp: internal OR fatal error
ORA-00600: internal error code, arguments: [kgscLogOff-notempty], [1], [], [], [], [], [], []
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedst()+64          CALL     _etext_f()+23058430  000000000 ? 000000001 ?
                              09017162224          
ksedmp()+1680        CALL     _etext_f()+23058430  000000000 ?
                              09017162224          C000000000000D20 ?
                                                   40000000052B0470 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ?
ksfdmp()+48          CALL     _etext_f()+23058430  000000003 ?
                              09017162224          
kgerinv()+400        CALL     _etext_f()+23058430  400000000944F6F0 ?
                              09017162224          000000003 ?
                                                   C000000000000612 ?
                                                   000008F07 ? 000000000 ?
                                                   000000000 ?
kgeasnmierr()+144    CALL     _etext_f()+23058430  6000000000015C50 ?
                              09017162224          6000000000016D08 ?
                                                   6000000000014240 ?
                                                   600000000011C078 ?
                                                   6000000000017070 ?
$cold_kgscLogOff()+  CALL     _etext_f()+23058430  6000000000015C50 ?
144                           09017162224          6000000000268350 ?
                                                   6000000000268360 ?
                                                   6000000000017080 ?
                                                   000000000 ? 000000001 ?
kkslof()+320         CALL     _etext_f()+23058430  6000000000015C50 ?
                              09017162224          
opifcs()+592         CALL     _etext_f()+23058430  C0000001E8158788 ?
                              09017162224          C000000000000E21 ?
                                                   4000000002DB9C40 ?
                                                   000000000 ? 000000000 ?
ksuxds()+1504        CALL     _etext_f()+23058430  C0000001E8158788 ?
                              09017162224          4000000002E57DE0 ?
                                                   000008F9F ?
                                                   9FFFFFFFBF56BFC4 ?
                                                   9FFFFFFFBF56BFC6 ?
                                                   C0000001E8158788 ?
                                                   00000003F ?
                                                   9FFFFFFFBF56BFBC ?
ksudel()+128         CALL     0000000000000006     C0000001E8159B78 ?
                                                   60000000001274D4 ?
                                                   9FFFFFFFFFFF6A90 ?
                                                   600000000011D1C0 ?
opilof()+2624        CALL     0000000000000006     C0000001E8158788 ?
                                                   6000000000127678 ?
                                                   4000000003D0C7E0 ?
                                                   C0000000000011A9 ?
                                                   00000810D ?
                                                   60000000001274D4 ?
opiodr()+2064        CALL     <kernel>             9FFFFFFFFFFF80B0 ?
                                                   400000000304FDD0 ?
                                                   00000820F ?
                                                   9FFFFFFFFFFF7020 ?
                                                   600000000011D1C0 ?
                                                   C000000000001836 ?
Cannot find symbol IN .
Cannot find symbol IN .
ttcpip()+1824        CALL     __text_start_f()+22  6000000000129A70 ?
                              765064               6000000000015DD0 ?
                                                   9FFFFFFFFFFFA790 ?
                                                   6000000000015DD0 ?
                                                   9FFFFFFFFFFF80C0 ?
                                                   600000000011D1C0 ?
                                                   000000000 ?
                                                   6000000000021838 ?
opitsk()+2224        CALL     0000000000000000     6000000000021830 ?
                                                   000000000 ?
                                                   9FFFFFFFFFFFA790 ?
                                                   000000000 ?
                                                   9FFFFFFFFFFFA900 ?
                                                   9FFFFFFFFFFFA6F4 ?
                                                   4000000001EA0780 ?
                                                   9FFFFFFFFFFFA6E8 ?
opiino()+1920        CALL     _etext_f()+23058430  000000000 ? 000000000 ?
                              09016090072          600000000011D1C0 ?
                                                   40000000023A45D0 ?
                                                   000008001 ?
                                                   9FFFFFFFFFFFA6E4 ?
opiodr()+2064        CALL     _etext_f()+23058430  00000003C ?
                              09016090072          9FFFFFFFFFFFF0D0 ?
                                                   9FFFFFFFFFFFF0C0 ?
                                                   9FFFFFFFFFFFBE00 ?
                                                   000000084 ?
                                                   600000000010EC20 ?
opidrv()+1104        CALL     __text_start_f()+22  6000000000129A70 ?
                              767104               6000000000015DD0 ?
                                                   9FFFFFFFFFFFF0C0 ?
                                                   6000000000015DD0 ?
                                                   9FFFFFFFFFFFC950 ?
                                                   600000000011D1C0 ?
sou2o()+240          CALL     _etext_f()+23058430  00000003C ? 000000004 ?
                              09017120608          9FFFFFFFFFFFF0C0 ?
opimai_real()+240    CALL     _etext_f()+23058430  9FFFFFFFFFFFF0E0 ?
                              09017120608          00000003C ? 000000004 ?
                                                   9FFFFFFFFFFFF0C0 ?
main()+352           CALL     _etext_f()+23058430  000000000 ?
                              09017120608          9FFFFFFFFFFFF110 ?
main_opd_entry()+80  CALL     _etext_f()+23058430  000000002 ?
                              09017120608          9FFFFFFFFFFFF5C0 ?
                                                   C000000000033910 ?
                                                   000000000 ?
--------------------- Binary Stack Dump ---------------------

MOS中没有记录进一步的信息,不过根据后面的ORA-81错误,可以判断,应该是会话进行退出登录的清理动作时,发现了内存中有部分地址不可读,造成了这个错误的产生。
检查trace还可以发现下面的信息:

Memory dump OF process state object:
Dump OF memory FROM 0xC0000001E804BEE8 TO 0xC0000001E804C6D8
C0000001E804BEE0                   ******** ********          [********]
C0000001E804BEF0 ******** ******** ******** ********  [****************]
        Repeat 125 times
C0000001E804C6D0 ******** ********                    [********]        
Symbolic dump OF process state object:
kqfdumpvar: address 0xC0000001E804BEE8 cannot be dumped AS TYPE 'ksupr' (8 bytes are unreadable)
KSFD PGA DUMPS 
NUMBER OF completed I/O requests=0 flags=0
END OF PROCESS STATE

显然在处理PGA的时候,处理8个字节的地址不可读,导致了这个ORA-600错误。根据MOS中的记录,由于错误发生在LOG OFF的时候,可以简单的忽略这个问题,并不会对系统造成影响,而这个错误在10.2.0.4和11.1.0.6中被fixed。

This entry was posted in BUG and tagged , , , . Bookmark the permalink.

One Response to ORA-600(kgscLogOff-notempty)错误

  1. adamhuan says:

    这个博客真低调。
    明明博主是那么强的大牛,却没有大肆的宣传自己的博客… 很宁静致远。
    境界挺高的。

Leave a Reply

Your email address will not be published. Required fields are marked *