OS:RH5.0-64bit
ORACLE:10.2.1
问题再现的操作步骤:
[@more@]1、将某一列设置为unused的:
alter table scott.aaa set unused column a;
2、将隐藏的列删除:
alter table scott.aaa drop SYS_C00001_10093022:03:33$;
3、新增刚刚隐藏并且删除的列:
alter table scott.aaa add a number;
4、访问表(此时表里必须有数据)
SELECT * from scott.aaa;
此时这个会话将会hang住,CPU爆满!
等待N久后自动报出异常:
ERROR at line 1:
ORA-03113: end-of-file on communication channel
会话自动退出!
查看wait event为idle的,
设置10046事件后:
select * from scott.aaa
END OF STMT
PARSE #1:c=45993,e=44915,p=0,cr=13,cu=0,mis=1,r=0,dep=0,og=1,tim=1255719875712055
BINDS #1:
EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1255719875712055
WAIT #1: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1255719875712055
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x6ea0000a, PC: [0x31283e6, kdstsrp0km()+206]
*** 2010-09-30 22:32:33.717
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [kdstsrp0km()+206] [SIGSEGV] [Address not mapped to object] [0x06EA0000A] [] []
Current SQL statement for this session:
select * from scott.aaa
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
Cannot find symbol
Cannot find symbol
Cannot find symbol
ksedst()+31 call ksedst1() 000000001 ? 000000001 ?
000000000 ? 000000000 ?
000000000 ? 000000001 ?
ksedmp()+610 call ksedst() 000000001 ? 000000001 ?
000000000 ? 000000000 ?
000000000 ? 000000001 ?
ssexhd()+630 call ksedmp() 000000003 ? 000000001 ?
000000000 ? 000000000 ?
000000000 ? 000000001 ?
<0x3114c0e7c0> call ssexhd() 00000000B ? 2B6505F29D70 ?
2B6505F29C40 ? 000000000 ?
000000000 ? 000000001 ?
--------------------- Binary Stack Dump ---------------------
问题解决:
暂未解决!