yangtingkun
===========================================================
ORA-7445(opidsa)错误
===========================================================

这两天和bug有缘,又是一个10.2.0.3bug


后台alert文件中显示如下的错误信息:

*** ACTION NAME:(Main session) 2007-10-18 17:57:14.984
*** MODULE NAME:(PL/SQL Developer) 2007-10-18 17:57:14.984
*** SERVICE NAME:(tradedb.us.oracle.com) 2007-10-18 17:57:14.984
*** SESSION ID:(323.25333) 2007-10-18 17:57:14.984
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x0, PC: [0x10252f160, opidsa()+480]
ksedmp: internal or fatal error
ORA-07445:
出现异常错误: 核心转储 [opidsa()+480] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
Current SQL statement for this session:
select col.*, com.Comments
from sys.all_tab_columns col,
sys.all_col_comments com
where col.owner = :owner
and col.table_name = :table_name
and com.Owner (+) = :Owner
and com.Table_Name (+) = :table_name
and com.Column_Name (+) = col.Column_Name
order by col.column_id

进一步观察trace文件,发现:

SO: 728110c60, type: 4, owner: 728005770, flag: INIT/-/-/0x00
(session) sid: 323 trans: 0, creator: 728005770, flag: (c0000041) USR/- BSY/-/-/-/-/-
DID: 0002-0019-0001F0A3, short-term DID: 0002-0019-0001F0A4
txn branch: 0
oct: 3, prv: 0, sql: 4ec95bf98, psql: 3f3d27958, user: 64/ANHUI_OPERATOR
O/S info: user: Administrator, term: ZJ-178, ospid: 1748:596, machine: WORKGROUPZJ-178
program: PLSQLDev.exe
application name: PL/SQL Developer, hash value=1190136663
action name: Main session, hash value=1773317990
last wait for 'SQL*Net message from client' blocking sess=0x0 seq=67 wait_time=3786 seconds since wait started=0
driver id=54435000, #bytes=1, =0
Dumping Session Wait History
for 'SQL*Net message from client' count=1 wait_time=3786
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=2
driver id=54435000, #bytes=1, =0
for 'library cache lock' count=1 wait_time=421
handle address=5a9590300, lock address=596897b08, 100*mode+namespace=12d
for 'library cache lock' count=1 wait_time=352
handle address=5a95690c0, lock address=5963b4650, 100*mode+namespace=12d
for 'library cache lock' count=1 wait_time=410
handle address=4f4ff4018, lock address=4b2fdfc68, 100*mode+namespace=12d
for 'library cache lock' count=1 wait_time=321
handle address=4ec95b768, lock address=4b2fdb6b0, 100*mode+namespace=12d
for 'library cache lock' count=1 wait_time=440
handle address=5aae08790, lock address=59641cf20, 100*mode+namespace=12d
for 'library cache lock' count=1 wait_time=415
handle address=5827a2888, lock address=59685a9f0, 100*mode+namespace=12d
for 'SQL*Net message from client' count=1 wait_time=5398
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=1
driver id=54435000, #bytes=1, =0
temporary object counter: 0

trace文件上面的信息看,是PL/SQL Developer工具在查询数据字典时出现的错误。

Metalink上找到相关的bugBug 5648872 - Dump (opidsa) from DESCRIBE of a cursor

Oracle的描述为:

This problem is believed to be introduced in 10.2.0.3
It is possible for clients connected to a 10.2.0.3 database to intermittently dump under opidsa when describing a cursor. 
Workaround:
  Flushing the shared pool can clear the problem for a period of time.

从目前看,Oracle还没有计划在哪个版本去fixed这个bug。关于这个bug的消息的描述可以参考METALINKDoc ID: Note:5648872.8

从目前发现的例子,都是PL/SQL Developer版本5连接10g数据库造成的,将Developer版本升级后,就不会出现这个问题。

yangtingkun 发表于:2007.10.20 19:44 ::分类: ( ORACLE , Bug ) ::阅读:(841次) :: 评论 (5)
re: ORA-7445(opidsa)错误 [回复]

这种BUG会在哪种情况出现?

steven 评论于: 2007.12.11 16:59
re: ORA-7445(opidsa)错误 [回复]

从我发现的所有例子看,都是由于developer 5访问10.2.0.3造成的。

yangtingkun 评论于: 2007.12.12 00:22
re: ORA-7445(opidsa)错误 [回复]

感謝你的回復,我新升級的一台主機也出現7445錯誤,與你的很類似,錯誤很頻繁,每分鐘出現一次,前端是PB開發的程式,每次是不同的SQL且SQL都是簡單的查詢,操作系統為RHEL4.5 Oracle為10.2.0.3
會不會也是這個BUG呢? 附部份trace信息

*** 2007-12-12 08:23:51.409
*** SERVICE NAMEangry.gifpy3f.yydg.com.cn) 2007-12-12 08:23:51.389
*** SESSION IDangry.gif92.147) 2007-12-12 08:23:51.389
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x
0, PC: [0xa1ba87d, opidsa()+313]
Registers:
%eax: 0x00000000 %ebx: 0xb720c1dc %ecx: 0x00000002
%edx: 0xbfffed10 %edi: 0x00000000 %esi: 0x3ccaf080
%esp: 0xbfffc4ac %ebp: 0xbfffc534 %eip: 0x0a1ba87d
%efl: 0x00210287
opidsa()+298 (0xa1ba86e) movzw %ax,%ecx
opidsa()+301 (0xa1ba871) mov 0xfffffffc(%ebp),%eax
opidsa()+304 (0xa1ba874) mov %cx,(%eax)
opidsa()+307 (0xa1ba877) mov 0xc4(%esi),%eax
> opidsa()+313 (0xa1ba87d) movzw (%eax),%esi
opidsa()+316 (0xa1ba880) imul %edi,%esi
opidsa()+319 (0xa1ba883) mov 0xc(%edx),%edx
opidsa()+322 (0xa1ba886) mov 0x8(%esi,%eax),%eax
opidsa()+326 (0xa1ba88a) mov 0xffffffbc(%ebp),%esi
WARNING: dynamic library /lib/libnsl.so.1 has been modified!!!
*** 2007-12-12 08:23:51.468
ksedmp: internal or fatal error
ORA-07445: 發生意外情況 : 基核傾印 [opidsa()+313] [SIGSEGV] [Address not mapped to object]
[0x0] [] []
Current SQL statement for this session:
SELECT VENDER_NO , PUNIT FROM Y_VENDER Where VENDER_NO =:1
----- Call Stack Trace -----
.............
SO: 0x442c1290, type: 4, owner: 0x44223180, flag: INIT/-/-/0x00
(session) sid: 92 trans: (nil), creator: 0x44223180, flag: (40000041) USR/- BSY/-/-/-/
-/-
DID: 0001-001C-00000108, short-term DID: 0000-0000-00000000
txn branch: (nil)
oct: 3, prv: 0, sql: 0x402ae34c, psql: 0x402ae34c, user: 44/PY3FCOST
O/S info: user: sg.yang, term: PY3F-106033, ospid: 4294464437:42944, machine: PY3F-106
033
program: APP_SYSTEM.EXE
application name: APP_SYSTEM.EXE, hash value=0
last wait for 'SQL*Net message from client' blocking sess=0x(nil) seq=1778 wait_time=1
715 seconds since wait started=1
driver id=54435000, #bytes=1, =0
Dumping Session Wait History
for 'SQL*Net message from client' count=1 wait_time=1715
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=9
driver id=54435000, #bytes=1, =0
for 'SQL*Net message from client' count=1 wait_time=49460145
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=6
driver id=54435000, #bytes=1, =0
for 'SQL*Net message from client' count=1 wait_time=2049
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=8
driver id=54435000, #bytes=1, =0
for 'SQL*Net message from client' count=1 wait_time=1113
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=7
driver id=54435000, #bytes=1, =0
for 'SQL*Net message from client' count=1 wait_time=1820
driver id=54435000, #bytes=1, =0
for 'SQL*Net message to client' count=1 wait_time=9
driver id=54435000, #bytes=1, =0
temporary object counter: 0
----------------------------------------
Virtual Thread:
kgskvt: 0x4012b358, sess: 0x442c1290, vc: (nil), proc: 0x44223180
consumer group cur: OTHER_GROUPS (upd? 0), mapped: DEFAULT_CONSUMER_GROUP, orig:
vt_state: 0x200, vt_flags: 0x30, blkrun: 0
is_assigned: 1, in_sched: 0 (0)
vt_active: 0 (pending: 0)
used quanta: 0 (cg: 0)
cpu start time: 0, quantum status: 0x0
quantum checks to skip: 0, check thresh: 0
idle time: 0, active time: 0 (cg: 0)

Steven 评论于: 2007.12.12 08:41
re: ORA-7445(opidsa)错误 [回复]

如果每次都发生在这张表上Y_VENDER
可以考虑把这张表重建一下

yangtingkun 评论于: 2007.12.12 10:58
re: ORA-7445(opidsa)错误 [回复]

找到原因了,是oracle 5648872的bug.把這個補丁一打就沒事了

Steven 评论于: 2007.12.12 13:08

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...