ORA-7445(_intel_fast_memcpy.A)错误

在10.2.0.4 RAC for X86-64环境上出现了ORA-7445[_intel_fast_memcpy.A]的错误。
以前碰到过几次的memcpy有关的错误,但是这个错误函数是第一次碰到:

Sat Apr 7 17:27:11 2012
Errors IN file /opt/app/oracle/admin/orcl/bdump/orcl1_j002_16579.trc:
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address NOT mapped TO object] [0x2A9734C000] [] []

本以为这个错误不是太常见,结果查询MOS采发现,原来类似的错误还是很常见的,于是进一步比对详细的TRACE信息:

*** 2012-04-07 17:27:11.099
*** ACTION NAME:() 2012-04-07 17:27:11.099
*** MODULE NAME:() 2012-04-07 17:27:11.099
*** SERVICE NAME:(SYS$USERS) 2012-04-07 17:27:11.099
*** CLIENT ID:() 2012-04-07 17:27:11.099
*** SESSION ID:(4124.53396) 2012-04-07 17:27:11.099
Exception signal: 11 (SIGSEGV), code: 1 (Address NOT mapped TO object), addr: 0x2a9734c000, PC: [0x2a95575608, _intel_fast_memcpy.A()+10]
*** 2012-04-07 17:27:11.129
ksedmp: internal OR fatal error
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address NOT mapped TO object] [0x2A9734C000] [] []
CURRENT SQL statement FOR this SESSION:
UPDATE E_INVENTORY SET FREEZN_SIZE = FREEZN_SIZE + (:B2 ) WHERE ID = :B1 
----- PL/SQL Call Stack -----
  object      line  object
  handle    NUMBER  name
0x223a947d8        15  PROCEDURE ECOMMERCE.FREEZEN_UPDATE_JOB
0x3e6922098         1  anonymous block
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedst()+31          CALL     ksedst1()            000000000 ? 000000001 ?
                                                   2A97153D50 ? 2A97153DB0 ?
                                                   2A97153CF0 ? 000000000 ?
ksedmp()+610         CALL     ksedst()             000000000 ? 000000001 ?
                                                   2A97153D50 ? 2A97153DB0 ?
                                                   2A97153CF0 ? 000000000 ?
ssexhd()+629         CALL     ksedmp()             000000003 ? 000000001 ?
                                                   2A97153D50 ? 2A97153DB0 ?
                                                   2A97153CF0 ? 000000000 ?
__funlockfile()+64   CALL     ssexhd()             00000000B ? 2A97154D70 ?
                                                   2A97154C40 ? 2A97153DB0 ?
                                                   2A97153CF0 ? 000000000 ?
_intel_fast_memcpy.  signal   __funlockfile()      2A9734C000 ? 2A9734C000 ?
A()+10                                             FFFFFFFFFFFFF82E ?
                                                   1FFFFFFFFFFFE12C ?
                                                   2A9733D130 ? 2A9733A430 ?
updgrh()+2927        CALL     _intel_fast_memcpy.  2A9733D138 ? 2A9734C000 ?
                              A()                  1FFFFFFFFFFFE12C ?
                                                   1FFFFFFFFFFFE12C ?
                                                   2A9733D130 ? 2A9733A430 ?
upduaw()+115         CALL     updgrh()             3AB891A30 ? 2A97339F10 ?
                                                   3AB891A30 ?
                                                   1FFFFFFFFFFFE12C ?
                                                   400000001 ? 401C1F878 ?
kdusru()+528         CALL     upduaw()             2A9733B1F8 ? 000000000 ?
                                                   2A9733A1E8 ? 24A9A9EF0 ?
                                                   400000001 ? 401C1F878 ?
kauupd()+450         CALL     kdusru()             2A9733CFA4 ? 000000000 ?
                                                   2A97339F10 ? 000000000 ?
                                                   E1E797900000000 ? 401C1F878 ?
updrow()+1658        CALL     kauupd()             2A9733CFA0 ? 000000000 ?
                                                   2A97339F10 ? 000000000 ?
                                                   3D5FAA0A0 ? 000000007 ?
qerupRowProcedure()  CALL     updrow()             3B3C43ED0 ? 000007FFF ?
+80                                                2A97339F10 ? 000000000 ?
                                                   3D5FAA0A0 ? 000000007 ?
qerupFetch()+667     CALL     qerupRowProcedure()  3B3C43ED0 ? 000007FFF ?
                                                   2A97339F10 ? 000000000 ?
                                                   3D5FAA0A0 ? 000000007 ?
updaul()+1065        CALL     qerupFetch()         000000007 ? 000000000 ?
                                                   226024078 ? 000007FFF ?
                                                   3D5FAA0A0 ? 2260242A8 ?
updThreePhaseExe()+  CALL     updaul()             3B3C43ED0 ? 7FBFFF7290 ?
379                                                000000000 ? 2A9733AF40 ?
                                                   3D5FAA0A0 ? 2260242A8 ?
updexe()+600         CALL     updThreePhaseExe()   3B3C43ED0 ? 000000000 ?
                                                   2A97339F10 ? 7FBFFF73B0 ?
                                                   3D5FAA0A0 ? 2260242A8 ?
opiexe()+4577        CALL     updexe()             3B3C43ED0 ? 000000000 ?
                                                   2A97339F10 ? 7FBFFF73B0 ?
                                                   000000000 ? 2260242A8 ?
opipls()+2025        CALL     opiexe()             000000004 ? 000000005 ?
                                                   7FBFFF89BC ? 00000000D ?
                                                   000000000 ? 2260242A8 ?
opiodr()+984         CALL     opipls()             000000066 ? 000000006 ?
                                                   7FBFFFA0B0 ? 000000000 ?
                                                   2A9769E410 ? 400000000 ?
rpidrus()+198        CALL     opiodr()             000000066 ? 000000006 ?
                                                   7FBFFFA0B0 ? 00000000D ?
                                                   0059DF890 ? 400000000 ?
skgmstack()+158      CALL     rpidrus()            7FBFFF96F8 ? 000000006 ?
                                                   7FBFFFA0B0 ? 00000000D ?
                                                   0059DF890 ? 400000000 ?
rpidru()+116         CALL     skgmstack()          7FBFFF96D0 ? 0067B42E0 ?
                                                   00000F618 ? 0022F61B8 ?
                                                   7FBFFF96F8 ? 400000000 ?
rpiswu2()+420        CALL     rpidru()             7FBFFF9D90 ? 0067B42E0 ?
                                                   00000F618 ? 0022F61B8 ?
                                                   7FBFFF96F8 ? 400000000 ?
rpidrv()+1519        CALL     rpiswu2()            42167D498 ? 000000044 ?
                                                   7FBFFF9D70 ? 000000002 ?
                                                   7FBFFF9DD8 ? 000000044 ?
psddr0()+438         CALL     rpidrv()             00000000D ? 000000066 ?
                                                   7FBFFFA0B0 ? 000000038 ?
                                                   7FBFFF9DD8 ? 000000044 ?
psdnal()+386         CALL     psddr0()             00000000D ? 000000066 ?
                                                   7FBFFFA0B0 ? 000000030 ?
                                                   7FBFFF9DD8 ? 000000044 ?
pevm_EXECC()+376     CALL     psdnal()             7FBFFFABF0 ? 7FBFFFADE0 ?
                                                   7FBFFFA0B0 ? 2A97332EE8 ?
                                                   00000000F ? 000000044 ?
pfrinstr_EXECC()+80  CALL     pevm_EXECC()         2A97335640 ? 7FBFFFADE0 ?
                                                   000000020 ? 2A97332EE8 ?
                                                   00000000F ? 000000044 ?
pfrrun_no_tool()+65  CALL     pfrinstr_EXECC()     2A97335640 ? 18DD12140 ?
                                                   2A973356A8 ? 2A97332EE8 ?
                                                   00000000F ? 7F00000020 ?
pfrrun()+906         CALL     pfrrun_no_tool()     2A97335640 ? 18DD12140 ?
                                                   2A973356A8 ? 2A97332EE8 ?
                                                   00000000F ? 7F00000020 ?
plsql_run()+841      CALL     pfrrun()             2A97335640 ? 000000000 ?
                                                   2A973356A8 ? 7FBFFFABF0 ?
                                                   00000000F ? 3CA6A9264 ?
peicnt()+298         CALL     plsql_run()          2A97335640 ? 000000001 ?
                                                   000000000 ? 7FBFFFABF0 ?
                                                   00000000F ? 900000000 ?
kkxexe()+503         CALL     peicnt()             7FBFFFABF0 ? 2A97335640 ?
                                                   2A97308830 ? 7FBFFFABF0 ?
                                                   2A973067D8 ? 900000000 ?
opiexe()+4691        CALL     kkxexe()             2A97336890 ? 2A97335640 ?
                                                   2A97308830 ? 4095E69F0 ?
                                                   0040F066F ? 900000000 ?
opiodr()+984         CALL     opiexe()             000000004 ? 000000004 ?
                                                   7FBFFFCFB0 ? 000000005 ?
                                                   0040F066F ? 900000000 ?
rpidrus()+198        CALL     opiodr()             000000004 ? 000000004 ?
                                                   7FBFFFCFB0 ? 000000005 ?
                                                   0059DE940 ? 900000000 ?
skgmstack()+158      CALL     rpidrus()            7FBFFFC808 ? 000000004 ?
                                                   7FBFFFCFB0 ? 000000005 ?
                                                   0059DE940 ? 900000000 ?
rpidru()+116         CALL     skgmstack()          7FBFFFC7E0 ? 0067B42E0 ?
                                                   00000F618 ? 0022F61B8 ?
                                                   7FBFFFC808 ? 900000000 ?
rpiswu2()+420        CALL     rpidru()             7FBFFFCEA0 ? 0067B42E0 ?
                                                   00000F618 ? 0022F61B8 ?
                                                   7FBFFFC808 ? 900000000 ?
rpidrv()+1519        CALL     rpiswu2()            42167D498 ? 000000044 ?
                                                   7FBFFFCE80 ? 000000002 ?
                                                   7FBFFFCEE8 ? 100000044 ?
rpiexe()+65          CALL     rpidrv()             000000005 ? 000000004 ?
                                                   7FBFFFCFB0 ? 00000000A ?
                                                   7FBFFFCEE8 ? 100000044 ?
kkjex1e()+7155       CALL     rpiexe()             000000005 ? 000000004 ?
                                                   7FBFFFCFB0 ? 00000000A ?
                                                   7FBFFFCEE8 ? 100000044 ?
kkjsexe()+339        CALL     kkjex1e()            7FBFFFDD4C ? 0000001B9 ?
                                                   000000000 ? 7FBFFFDD30 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
kkjrdp()+892         CALL     kkjsexe()            7FBFFFDD4C ? 0000001B9 ?
                                                   000000000 ? 000000001 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
opirip()+1140        CALL     kkjrdp()             7FBFFFDD4C ? 0000001B9 ?
                                                   000000000 ? 000000001 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
opidrv()+582         CALL     opirip()             000000032 ? 000000004 ?
                                                   7FBFFFF438 ? 000000001 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
sou2o()+114          CALL     opidrv()             000000032 ? 000000004 ?
                                                   7FBFFFF438 ? 000000001 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
opimai_real()+317    CALL     sou2o()              7FBFFFF410 ? 000000032 ?
                                                   000000004 ? 7FBFFFF438 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
main()+116           CALL     opimai_real()        000000003 ? 7FBFFFF4A0 ?
                                                   000000004 ? 7FBFFFF438 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
__libc_start_main()  CALL     main()               000000003 ? 7FBFFFF4A0 ?
+219                                               000000004 ? 7FBFFFF438 ?
                                                   4285C8110 ?
                                                   BFFF000700000001 ?
_start()+42          CALL     __libc_start_main()  0007139F8 ? 000000001 ?
                                                   7FBFFFF5E8 ? 0052B4BD0 ?
                                                   000000000 ? 000000003 ?
--------------------- Binary Stack Dump ---------------------

根据错误堆栈对比,确认属于ORA-07445 [_memcpy] And/Or [_memmove] And/Or ORA-07445 [kgidum] And/Or [kgscDump]during updates in 9.2.0.8 or 10.2.0.4 [ID 729206.1]描述的未发布BUG 5868257。
这个错误是在进行UPDATE操作时导致了内存结构损坏,这个错误发生在9.2.0.8和10.2.0.4环境下,是由于解决了Bug 4549673而引入的。
解决方法包括升级到10.2.0.5或11.1.0.6,或者针对特定的平台打Patch 5868257。除了这些方法外,由于问题和行迁移有关,对出现错误的表进行MOVE来消除行迁移,也可以避免错误的产生。

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 *