ORA-7445(ptmax)错误

一个9.2.0.8上的bug。
虽然12c已经发布,但是仍然有部分客户的核心数据库还跑在9i环境上,有碰到了一个9208上的bug。

Thu May 16 14:18:48 2013
Errors IN file /oracle/oracle/admin/orcl/udump/orcl_ora_11922.trc:
ORA-07445: 出现异常: 核心转储 [00000001023A0F08] [SIGSEGV] [Address NOT mapped TO object] [0x000000010] [] []
Thu May 16 14:19:49 2013
Errors IN file /oracle/oracle/admin/orcl/udump/orcl_ora_12389.trc:
ORA-07445: 出现异常: 核心转储 [00000001023A0F08] [SIGSEGV] [Address NOT mapped TO object] [0x000000010] [] []

详细TRACE信息:

*** SESSION ID:(1298.47235) 2013-05-16 14:18:48.666
Exception signal: 11 (SIGSEGV), code: 1 (Address NOT mapped TO object), addr: 0x10, PC: [0x1023a0f08, 00000001023A0F08]
*** 2013-05-16 14:18:48.669
ksedmp: internal OR fatal error
ORA-07445: 出现异常: 核心转储 [00000001023A0F08] [SIGSEGV] [Address NOT mapped TO object] [0x000000010] [] []
CURRENT SQL statement FOR this SESSION:
BEGIN
  -- Call the procedure
  z_r_res_pk.g_num;
END;
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedmp()+328         CALL     ksedst()             00000000B ? 000000000 ?
                                                   000000000 ? 1033CF6C8 ?
                                                   00000003E ?
                                                   FFFFFFFF7FFF1188 ?
ssexhd()+676         CALL     ksedmp()             00010380C ? 10380C000 ?
                                                   10380C718 ? 103811000 ?
                                                   000102C00 ? 000000000 ?
__sighndlr()+12      PTR_CALL 0000000000000000     000103814 ?
                                                   FFFFFFFF7FFF8400 ?
                                                   103814000 ? 1038118E8 ?
                                                   000000000 ? 103814908 ?
call_user_handler()  CALL     __sighndlr()         00000000B ?
+992                                               FFFFFFFF7FFF8400 ?
                                                   FFFFFFFF7FFF8120 ?
                                                   10023F860 ? 000000000 ?
                                                   00000000A ?
sigacthandler()+104  CALL     call_user_handler()  FFFFFFFF7DB00200 ?
                                                   FFFFFFFF7DB00200 ?
                                                   FFFFFFFF7FFF8120 ?
                                                   00000000C ? 000000000 ?
                                                   000000000 ?
ptmak()+424          PTR_CALL 0000000000000000     000000000 ?
                                                   FFFFFFFF7FFF8400 ?
                                                   FFFFFFFF7FFF8120 ?
                                                   FFFFFFFF7DB00200 ?
                                                   000000000 ?
                                                   FFFFFFFF7DB3E000 ?
pdtidc()+4716        CALL     ptmak()              FFFFFFFF7FFF9300 ?
                                                   000000000 ? 000000004 ?
                                                   000000002 ? 000000000 ?
                                                   FFFFFFFF7CE61800 ?
pdlifu()+620         CALL     pdtidc()             000000000 ? 00002000C ?
                                                   000000001 ? 000000001 ?
                                                   102FBB000 ? 000102C00 ?
phpcmp()+1016        CALL     phpcog()             000000000 ?
                                                   FFFFFFFF7CE5C150 ?
                                                   00000000C ? 000000011 ?
                                                   FFFFFFFF7FFF9300 ?
                                                   F988B6748 ?
pcicog()+184         CALL     phpcmp()             FFFFFFFF7FFF9300 ?
                                                   F988B6748 ? 000000000 ?
                                                   000000004 ? 000000004 ?
                                                   000000000 ?
kkxcog()+288         CALL     pcicog()             FFFFFFFF7FFF9300 ?
                                                   F988B6748 ? 10380C49C ?
                                                   00000AB90 ? 000000001 ?
                                                   000000225 ?
opitca()+4796        CALL     kkxcog()             F988B6748 ? 3800231C0 ?
                                                   000380000 ? 000103813 ?
                                                   103813000 ? 103813F34 ?
rpiswu2()+384        PTR_CALL 0000000000000000     FFFFFFFF7FFF9A60 ?
                                                   000000001 ? 00000000A ?
                                                   000000001 ? 00000001A ?
                                                   F988B6748 ?
kkslod()+5196        CALL     rpiswu2()            F46434118 ? 00010380C ?
                                                   10380C940 ? 10380C978 ?
                                                   000000000 ? 10338B000 ?
kglobld()+696        PTR_CALL 0000000000000000     000000000 ?
                                                   FFFFFFFF7CE64658 ?
                                                   000000000 ? 10380C978 ?
                                                   F98D09B58 ? FD7970EF0 ?
kglobpn()+1284       CALL     kglobld()            000000001 ? 000000000 ?
                                                   F98ECBA88 ? 10380CAB8 ?
                                                   000000001 ? F988B6748 ?
kglpim()+236         CALL     kglobpn()            000000001 ? F922092E8 ?
                                                   000000001 ? 10390E848 ?
                                                   10390EA08 ? 10380DA10 ?
kglpin()+764         CALL     kglpim()             0000000FF ? 10380CAB8 ?
                                                   102DC74E8 ? 010010000 ?
                                                   F988B6748 ? F922092E8 ?
kksfbc()+6956        CALL     kglpin()             000010000 ?
                                                   FFFFFFFF7FFFB278 ?
                                                   F9100F9C8 ? 000000000 ?
                                                   FFFFFFFF7FFFAE28 ?
                                                   FFFFFFFF7FFFA950 ?
kkspsc0()+988        CALL     kksfbc()             000004000 ? 000004000 ?
                                                   000103800 ? 000000000 ?
                                                   000004000 ? 000000000 ?
opiosq0()+936        CALL     kkspsc0()            FFFFFFFF7CE60400 ?
                                                   000000024 ? 102FA3B10 ?
                                                   000000003 ? 000000004 ?
                                                   FFFFFFFF7FFFC5D0 ?
kpooprx()+204        CALL     opiosq0()            10104C000 ? 10380EC78 ?
                                                   000000042 ?
                                                   FFFFFFFF7FFFCC90 ?
                                                   10380EA84 ? 000000016 ?
kpoal8()+528         CALL     kpooprx()            FFFFFFFF7FFFEC2C ?
                                                   FFFFFFFF7FFFCC90 ?
                                                   000000042 ? 103814B90 ?
                                                   000000000 ? 000000024 ?
opiodr()+1720        PTR_CALL 0000000000000000     10380E000 ? 000000000 ?
                                                   FFFFFFFF7FFFEC28 ?
                                                   000000024 ? 000000000 ?
                                                   000000000 ?
ttcpip()+1564        PTR_CALL 0000000000000000     000102DD9 ? 00010380C ?
                                                   103814B98 ? 10380CAB8 ?
                                                   10380EFF8 ?
                                                   FFFFFFFF7FFFC5D0 ?
opitsk()+1156        CALL     ttcpip()             103814B90 ? 000000001 ?
                                                   FFFFFFFF7FFFEC28 ?
                                                   000000014 ?
                                                   FFFFFFFF7FFFD718 ?
                                                   FFFFFFFF7FFFD714 ?
opiino()+1504        CALL     opitsk()             000000000 ? 103814B20 ?
                                                   000000000 ? 000000000 ?
                                                   102E484C8 ? 10380EFE0 ?
opiodr()+1720        PTR_CALL 0000000000000000     000000000 ? 000000000 ?
                                                   000000000 ?
                                                   FFFFFFFF7FFFFAA0 ?
                                                   000000001 ? 000000001 ?
opidrv()+764         CALL     opiodr()             000102DD9 ? 00010380C ?
                                                   103814B98 ? 10380CAB8 ?
                                                   10380EFF8 ?
                                                   FFFFFFFF7FFFF5C0 ?
sou2o()+16           CALL     opidrv()             00010380C ? 000000004 ?
                                                   10380CAB8 ? 00000003C ?
                                                   10380CAB8 ? 10380C718 ?
main()+184           CALL     sou2o()              FFFFFFFF7FFFFAC0 ?
                                                   00000003C ? 000000004 ?
                                                   FFFFFFFF7FFFFAA0 ?
                                                   00003B000 ? 00003B030 ?
_start()+380         CALL     main()               000000002 ?
                                                   FFFFFFFF7FFFFC08 ?
                                                   FFFFFFFF7FFFFC20 ?
                                                   000000000 ?
                                                   FFFFFFFF7E100100 ?
                                                   FFFFFFFF7DB00200 ?
--------------------- Binary Stack Dump ---------------------

进一步检查TRACE,发现当前程序为DEVELOPER在进行DEBUG操作:

PROCESS STATE
-------------
Process global information:
     process: f474d5360, CALL: f95814378, xact: 0, curses: f46434118, usrses: f46434118
  ----------------------------------------
  SO: f474d5360, TYPE: 2, owner: 0, flag: INIT/-/-/0x00
  (process) Oracle pid=848, calls cur/top: f95814378/f95814378, flag: (0) -
            INT error: 0, CALL error: 0, sess error: 0, txn error 0
  (post info) LAST post received: 0 0 0
              LAST post received-location: No post
              LAST process TO post me: NONE
              LAST post sent: 0 0 0
              LAST post sent-location: No post
              LAST process posted BY me: NONE
    (latch info) wait_event=0 bits=0
    Process GROUP: DEFAULT, pseudo proc: f443c8d50
    O/S info: USER: oracle, term: UNKNOWN, ospid: 11922
    OSD pid info: Unix process pid: 11922, image: oracle@ysun7 (TNS V1-V3)
    ----------------------------------------
    SO: f46434118, TYPE: 4, owner: f474d5360, flag: INIT/-/-/0x00
    (SESSION) trans: 0, creator: f474d5360, flag: (41) USR/- BSY/-/-/-/-/-
              DID: 0001-0350-00106A26, short-term DID: 0000-0000-00000000
              txn branch: 0
              oct: 47, prv: 0, SQL: f98ecb960, psql: fdcc324f8, USER: 65/GZMPCMIS
    O/S info: USER: Administrator, term: S-E-SERVE, ospid: 5944:4000, machine: WORKGROUP\S-E-SERVE
              program: plsqldev.exe
    application name: PL/SQL Developer, hash VALUE=1190136663
    action name: Test Window - Script FOR procedu, hash VALUE=3367543201
    LAST wait FOR 'SQL*Net message from client' blocking sess=0x0 seq=34 wait_time=8952
                driver id=54435000, #bytes=1, =0
    TEMPORARY object counter: 0
      ----------------------------------------
      SO: f922092e8, TYPE: 52, owner: f46434118, flag: INIT/-/-/0x00
      LIBRARY OBJECT PIN: pin=f922092e8 handle=f988b6748 mode=X LOCK=f9100f9c8
      USER=f46434118 SESSION=f46434118 COUNT=0 mask=00ff SAVEPOINT=195 flags=[00]
      ----------------------------------------
.
.
.
      SO: f6a2eaba8, TYPE: 51, owner: f46434118, flag: INIT/-/-/0x00
      LIBRARY OBJECT LOCK: LOCK=f6a2eaba8 handle=f8dbc9320 mode=N
      CALL pin=faf005300 SESSION pin=0
      htl=f6a2eac18[fa6f5b618,fa6f5b618] htb=fa6f5b618
      USER=f46434118 SESSION=f46434118 COUNT=1 flags=[00] SAVEPOINT=186
      LIBRARY OBJECT HANDLE: handle=f8dbc9320
      name=SYS.DBMS_DEBUG 
      hash=2c51e752 TIMESTAMP=10-04-2010 00:55:36
      namespace=BODY/TYBD flags=KGHP/TIM/SML/[02000000]
      kkkk-dddd-llll=0000-0011-0011 LOCK=N pin=S latch#=21
      lwt=f8dbc9350[f8dbc9350,f8dbc9350] ltm=f8dbc9360[f8dbc9360,f8dbc9360]
      pwt=f8dbc9380[f8dbc9380,f8dbc9380] ptm=f8dbc9410[f8dbc9410,f8dbc9410]
      REF=f8dbc9330[f8dbc9330, f8dbc9330] lnd=f8dbc9428[f8dbc9428,f8dbc9428]
        LIBRARY OBJECT: object=fb741e720
        TYPE=PKBD flags=EXS/LOC[0005] pflags=/SWR [08] STATUS=VALD LOAD=0
        DEPENDENCIES: COUNT=10 SIZE=16
        ACCESSES: COUNT=9 SIZE=16
        DATA BLOCKS:
        DATA#     heap  pointer STATUS pins CHANGE
        ----- -------- -------- ------ ---- ------
            0 f94627a40 fb741e8c8 I/P/A     0 NONE  
            4 fb741e840 fb0c81e68 I/P/A     1 NONE  
      ----------------------------------------
      SO: f85863c38, TYPE: 51, owner: f46434118, flag: INIT/-/-/0x00
      LIBRARY OBJECT LOCK: LOCK=f85863c38 handle=fcbfb58d0 mode=N
      CALL pin=f83bafa18 SESSION pin=0
      htl=f85863ca8[fa6f5b608,fa6f5b608] htb=fa6f5b608
      USER=f46434118 SESSION=f46434118 COUNT=1 flags=[00] SAVEPOINT=186
      LIBRARY OBJECT HANDLE: handle=fcbfb58d0
      name=SYS.DBMS_DEBUG 
      hash=2c51e751 TIMESTAMP=10-04-2010 00:55:32
      namespace=TABL/PRCD/TYPE flags=KGHP/TIM/SML/[02000000]
      kkkk-dddd-llll=0000-0215-0215 LOCK=N pin=S latch#=22
      lwt=fcbfb5900[fcbfb5900,fcbfb5900] ltm=fcbfb5910[fcbfb5910,fcbfb5910]
      pwt=fcbfb5930[fcbfb5930,fcbfb5930] ptm=fcbfb59c0[fcbfb59c0,fcbfb59c0]
      REF=fcbfb58e0[fcbfb58e0, fcbfb58e0] lnd=fcbfb59d8[fa81f4ca0,f9a3a9ef0]
        LIBRARY OBJECT: object=fb62f8710
        TYPE=PCKG flags=EXS/LOC[0005] pflags= [00] STATUS=VALD LOAD=0
        DEPENDENCIES: COUNT=2 SIZE=16
        ACCESSES: COUNT=1 SIZE=16
        DATA BLOCKS:
        DATA#     heap  pointer STATUS pins CHANGE
        ----- -------- -------- ------ ---- ------
            0 fafa8d3f8 fb62f88b8 I/P/A     0 NONE  
            2 fb62f8830 fb68a95f8 I/-/A     0 NONE  
            4 fb6f38c50 fd2b7d280 I/P/A     1 NONE  
            9 fb6f38ba0 fb6a0f450 I/-/A     0 NONE  
      ----------------------------------------

根据MOS文档ORA-07445 [ptmak()+107] During PL/SQL Debug [ID 726611.1],这个问题应该是DEBUG模式下编译对象导致的。
虽然BUG的信息是10.2上的,但是不排除9.2.0.8上存在相同的问题,不要使用PL/SQL的DEBUG功能,或者禁止过程的DEBUG选项,可以避免这个错误的产生。

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 *