一个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选项,可以避免这个错误的产生。