ORA-7445(kglLockIterator)错误

在客户的10.2.0.3环境中发现这个错误。
告警日志中错误为:

Mon Sep 20 10:21:04 2010
Errors IN file /home/oracle/admin/ARIC/udump/aric_ora_3776.trc:
ORA-07445: exception encountered: core dump [SIGSEGV] [Address NOT mapped TO object] [4294967377] [] [] []

对应的trace信息中的详细错误为:

*** 2010-09-20 10:21:04.190
*** ACTION NAME:() 2010-09-20 10:21:04.160
*** MODULE NAME:(TOAD 8.6.1.0) 2010-09-20 10:21:04.160
*** SERVICE NAME:(ARIC) 2010-09-20 10:21:04.160
*** SESSION ID:(97.27478) 2010-09-20 10:21:04.160
Exception signal: 11 (SIGSEGV), code: 1 (Address NOT mapped TO object), addr: 0x100000051
*** 2010-09-20 10:21:04.190
ksedmp: internal OR fatal error
ORA-07445: exception encountered: core dump [SIGSEGV] [Address NOT mapped TO object] [4294967377] [] [] []
CURRENT SQL statement FOR this SESSION:
SELECT  sid, owner, TYPE, object FROM v$access WHERE  sid = '769' OR  sid = '204' OR  sid = '655' OR  sid = '431'
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedst()+23          ?        0000000000000001     0017B341C 000000000 0062E5A60
                                                   000000000
ksedmp()+636         ?        0000000000000001     0017B1EB1 000000000 00000000B
                                                   000000000
ssexhd()+729         ?        0000000000000001     000E90E7E 000000000 0062E5B90
                                                   000000000
sigsetjmp()+25       ?        0000000000000001     0FDDC00B6 0FFFFFD7F 0062E5B50
                                                   000000000
call_user_handler()  ?        0000000000000001     0FDDB53A2 0FFFFFD7F 0062E5EF0
+589                                               000000000
sigacthandler()+163  ?        0000000000000001     0FDDB5588 0FFFFFD7F 0FF3FB2F0
                                                   0FFFFFD7F
kglLockIterator()+3  ?        0000000000000001     0FFFFFFFF 0FFFFFFFF 00000000B
80                                                 000000000
kqlftl()+194         ?        0000000000000001     001F2A4B7 000000000 000000000
                                                   000000000
qerfxFetch()+4999    ?        0000000000000001     00340E894 000000000 000000000
                                                   000000000
qerjotFetch()+214    ?        0000000000000001     0033BEBA3 000000000 0060B9478
                                                   000000000
qerjotFetch()+280    ?        0000000000000001     0033BEBE5 000000000 0000001F4
                                                   000000000
qerghFetch()+293     ?        0000000000000001     0034C19B2 000000000 0000001F4
                                                   000000000
qervwFetch()+158     ?        0000000000000001     0033BCFBB 000000000 0000001F4
                                                   000000000
opifch2()+2608       ?        0000000000000001     002932E8D 000000000 000000000
                                                   000000000
kpoal8()+3638        ?        0000000000000001     0028CF6BB 000000000 000000000
                                                   000000000
opiodr()+1087        ?        0000000000000001     000E97C5C 000000000 000000000
                                                   000000000
ttcpip()+1165        ?        0000000000000001     003D9F6CA 000000000 005F663F8
                                                   000000000
opitsk()+1278        ?        0000000000000001     000E939C3 000000000 000E97840
                                                   000000000
opiino()+931         ?        0000000000000001     000E96F08 000000000 005F5D840
                                                   000000000
opiodr()+1087        ?        0000000000000001     000E97C5C 000000000 000000000
                                                   000000000
opidrv()+748         ?        0000000000000001     000E924C1 000000000 0FFDFF8C8
                                                   0FFFFFD7F
sou2o()+86           ?        0000000000000001     000E8F8FB 000000000 000000000
                                                   000000000
opimai_real()+127    ?        0000000000000001     000E552D4 000000000 000000000
                                                   000000000
main()+95            ?        0000000000000001     000E551A4 000000000 000000000
                                                   000000000
0000000000E54FE7     ?        0000000000000001     000E54FEC 000000000 000000000
                                                   000000000
--------------------- Binary Stack Dump ---------------------

这是一个TOAD客户端在访问动态视图时出现的问题。
这个错误对应的bug信息为:ORA-07445 KGLLOCKITERATOR, _INTEL_FAST_MEMCPY, KGLNAO and Other Errors Selecting From V$ Views [ID 403163.1],影响版本从9.2.0.1到10.2.0.3。
导致问题的原因是访问了某些参考了X$KGLLK对象的V$动态视图。
当前的SQL访问了V$ACCESS,检查V$FIXED_VIEW_DEFINITION视图:

SQL> SELECT VIEW_DEFINITION
2 FROM V$FIXED_VIEW_DEFINITION
3 WHERE VIEW_NAME = 'V$ACCESS';
VIEW_DEFINITION
-------------------------------------------------------------------------------------------
SELECT SID , OWNER , OBJECT , TYPE FROM GV$ACCESS WHERE inst_id = USERENV('Instance')
SQL> SELECT VIEW_DEFINITION
2 FROM V$FIXED_VIEW_DEFINITION
3 WHERE VIEW_NAME = 'GV$ACCESS';
VIEW_DEFINITION
-------------------------------------------------------------------------------------------
SELECT DISTINCT s.inst_id,s.ksusenum,o.kglnaown,o.kglnaobj,o.kglobtyd FROM x$ksuse s,x$kglob o,x$kgldp d,x$kgllk l WHERE
l.kgllkuse=s.addr AND l.kgllkhdl=d.kglhdadr AND l.kglnahsh=d.kglnahsh AND o.kglnahsh=d.kglrfhsh AND o.kglhdadr=d.kglrfhdl

可以看到,V$ACCESS视图会访问x$kgllk内部视图。
这个bug在11.1和10.2.0.4中被fixed。

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

Leave a Reply

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