Problem Description
SQL> create table lob_tab (a int, b clob)tablespace users
2 lob (b) store as (disable storage in row)
3 partition by range (a) (partition p1 values less than (100),
4 partition p2 values less than (200))
5 enable row movement;
Table created.
SQL> alter table lob_tab modify partition p1 lob (b) (allocate extent (size 100m));
Table altered.
SQL> alter table lob_tab modify partition p2 lob (b) (allocate extent (size 100m));
alter table lob_tab modify partition p2 lob (b) (allocate extent (size 100m))
*
ERROR at line 1:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [4], [2507],
[18038], [], [], [], []
From the alert log,
Errors in file d:\admin\a\udump\a_ora_4692.trc:
ORA-00600: internal error code, arguments: [kddummy_blkchk], [4], [2507], [18038], [], [], [], []
Thu Mar 17 15:55:31 2011
Doing block recovery for file 2 block 1513
Block recovery from logseq 85, block 542 to scn 3767234
Thu Mar 17 15:55:31 2011
Recovery of Online Redo Log: Thread 1 Group 3 Seq 85 Reading mem 0
Mem# 0: D:\ORADATA\A\REDO03.LOG
Block recovery completed at rba 85.1362.16, scn 0.3767235
Doing block recovery for file 4 block 2507
Block recovery from logseq 85, block 860 to scn 3767234
Thu Mar 17 15:55:31 2011
Recovery of Online Redo Log: Thread 1 Group 3 Seq 85 Reading mem 0
Mem# 0: D:\ORADATA\A\REDO03.LOG
Block recovery completed at rba 85.1362.16, scn 0.3767235
Thu Mar 17 15:55:32 2011
Corrupt Block Found
TSN = 4, TSNAME = USERS
RFN = 4, BLK = 2507, RDBA = 16779723
OBJN = 56411, OBJD = 56411, OBJECT = SYS_LOB0000056406C00002$$, SUBOBJECT = SYS_LOB_P22
SEGMENT OWNER = JULIA, SEGMENT TYPE = Lob Partition
Thu Mar 17 15:58:11 2011
Errors in file d:\admin\a\udump\a_ora_4692.trc:
ORA-00600: internal error code, arguments: [kddummy_blkchk], [4], [2507], [18038], [], [], [], []
From trace file,
*** 2011-03-17 15:55:29.234
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kddummy_blkchk], [4], [2507], [18038], [], [], [], []
Current SQL statement for this session:
alter table lob_tab modify partition p2 lob (b) (allocate extent (size 100m))
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
_ksedst+38 CALLrel _ksedst1+0 0 1
_ksedmp+898 CALLrel _ksedst+0 0
_ksfdmp+14 CALLrel _ksedmp+0 3
_kgerinv+140 CALLreg 00000000 7F27FD0 3
_kseinpre+58 CALLrel _kgerinv+0
_ksesin+37 CALLrel _kseinpre+0
__VInfreq__kco_blkc CALLrel _ksesin+0 35455E0 3 0 4 0 0 9CB 0 0
hk+1302 4676 0
_kcoapl+1703 CALLrel _kco_blkchk+0 869A1E8 11B4C000 4 2000 0
_kcbapl+157 CALLrel _kcoapl+0 869A1E8 11B4C000 1 4 2000 0 0
_kcrfw_redo_gen+254 CALLrel _kcbapl+0 869A1E8 11BF95F4 7F379A0 0 0
9
_kcbchg1_main+7588 CALLrel _kcrfw_redo_gen+0
_kcbchg1+191 CALLrel _kcbchg1_main+0 0 2 8699D34 8699D14 0 0
_ktuchg+1002 CALLrel _kcbchg1+0 0 2 8699D34 8699D14 0 0
_ktbchg2nt+48 CALLrel _ktuchg+0 0 869A004 2 0 0 869A248
869AC18 869A1E8 0 0
_kteopgen+1837 CALLrel _ktbchg2nt+0 0 869A004 0 0 869A248 869AC18
869A1E8 0 0
_kteopadd+1754 CALLrel _kteopgen+0 869AC18 869A654 0 869A248
869A1E8 869A1E8 0 0 0 0 1
_ktsxs_add+2196 CALLrel _kteopadd+0 869AC18 869A654 1004109 80 2
0 869ADB8 869ADBC 0
_ktsxsfr_fadd+3932 CALLrel _ktsxs_add+0 869AC18 869AD54 80 4 3 1 1 2
869ADB8 869ADBC 0 0 869ACE0
_ktrsexec+372 CALL??? 00000000 869AFB4
_atbale+368 CALLrel _ktrsexec+0 869AFB4 32000 2000
_kkblalsi+2259 CALLrel _atbale+0 1E9A7FA8 1E99F984 2 0 0
_atbFMmodify+582 CALLrel _kkblalsi+0 1E781260 1E9A7FC4 1E99ACB4 0
0 1E9A84C4 0
__VInfreq__atbdrv+1 CALLrel _atbFMmodify+0 1E781260 1E9A84A8 869C69C
223 869C720 869C724 1E9A8424
1E9A84C4
_opiexe+12384 CALLrel _atbdrv+0
_opiosq0+6112 CALLrel _opiexe+0 4 0 869CF54
_kpooprx+232 CALLrel _opiosq0+0 3 E 869D06C A4
_kpoal8+775 CALLrel _kpooprx+0 869F68C 869D8D8 4D 1 0 A4
_opiodr+1099 CALLreg 00000000 5E 17 869F688
_ttcpip+996 CALLreg 00000000 5E 17 869F688 0
_opitsk+1080 CALL??? 00000000
_opiino+1087 CALLrel _opitsk+0 0 0
_opiodr+1099 CALLreg 00000000 3C 4 869FC24
_opidrv+819 CALLrel _opiodr+0 3C 4 869FC24 0
_sou2o+45 CALLrel _opidrv+0 3C 4 869FC24
_opimai_real+112 CALLrel _sou2o+0 869FC18 3C 4 869FC24
_opimai+92 CALLrel _opimai_real+0 2 869FC50
_OracleThreadStart@ CALLrel _opimai+0
4+726
7C80B696 CALLreg 00000000
--------------------- Binary Stack Dump ---------------------
Cause of the Problem
This is Oracle bug specifically bug 9711859. In the trace file extent map shows:
Extent Map
-----------------------------------------------------------------
0x010009c9 length: 8
0x00000000 length: 0
The trace file has an Operation related to extent map with the invalid zero dba:
Block Checking: DBA = decimal dba, Block Type = Pagetable extent map block
Incorrect extent map entry at offset offset#. DBA value is 0x00000000
TYP:0 CLS: 7 AFN:file# DBA:hex dba OBJ:obj# SCN:scn SEQ: seq# OP:14.4
kteop redo - redo operation on extent map
The 0x00000000 means length Invalid zero rdba/length.
Solution of the Problem
Workaround we have to do the following:
DROP the affected segment.
The data from the TABLE and LOB should be still accessible using EXPDP/IMPDP, CTAS , index access (in case of a table), etc ...
If the error is still produced by SMON while cleaning the temporary segment, use the next procedures from DBMS_SPACE_ADMIN to clear the segment :
segment_corrupt
segment_drop_corrupt
tablespace_rebuild_bitmaps
Example :
select SEGMENT_NAME, HEADER_FILE, HEADER_BLOCK
from DBA_SEGMENTS where SEGMENT_TYPE = 'TEMPORARY'
and TABLESPACE_NAME = '&LOBTABLESPACE';
-- Using the HEADER_FILE and HEADER_BLOCK, execute :
exec DBMS_SPACE_ADMIN.SEGMENT_CORRUPT('&LOBTABLESPACE', &HEADER_FILE, &HEADER_BLOCK );
exec DBMS_SPACE_ADMIN.SEGMENT_DROP_CORRUPT('&LOBTABLESPACE', &HEADER_FILE, &HEADER_BLOCK );
exec DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS('&LOBTABLESPACE');
exec DBMS_SPACE_ADMIN.TABLESPACE_VERIFY('&LOBTABLESPACE');
Install patch Patch 9711859. Note that, Patch 9711859 fix replaces the fix in Patch 8198906 which in fact introduced some other bugs. :)
After you apply above patch also apply patchset 10.2.0.5 and 10.2.0.5.0 Patch 6 (10.2.0.5.6P) 32-Bit Patch:11675638 64-Bit (x64) Patch:11675644 where this bug is fixed.
This issue is fixed in Oracle version 11.2.0.1 (Base Release).