My Oracle Support Banner

Select Statement Fails With ORA-00600[17114] AND ORA-00600[RWORUPO.1] After Upgrade To 11g (Doc ID 1621712.1)

Last updated on MARCH 07, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.4 [Release 11.2]
Information in this document applies to any platform.

Symptoms

- The errors: ORA-00600[17114] and ORA-00600[rworupo.1] errors are reported while running:

SQL> select * from dtvorhabenversionen where anmerkung is not null
     order by length(anmerkung) desc;


- The generated trace files contain the following information:

 ========= Dump for incident 37421 (ORA 600 [17114]) ========
 ----- Beginning of Customized Incident Dump(s) -----
 ********** Internal heap ERROR 17114 addr=110f399b0 *********
 ***** Dump of memory around addr 110f399b0:
 ........
 ******************************************************
 HEAP DUMP heap name="session heap"  desc=110936d08
 extent sz=0xffc8 alt=32767 het=32767 rec=0 flg=2 opc=2
 parent=110101eb8 owner=7000006786657b8 nex=0 xsz=0xffb0 heap=0
 fl2=0x60, nex=0, dsxvers=1, dsxflg=0x0
 dsx first ext=0x10940098
 EXTENT 0 addr=111211bc0
  Chunk        111211bd0 sz=    47904    free      "               "
  Chunk        11121d6f0 sz=    17536    freeable  "kxs-heap-w     "  
 ds=110a41178
 EXTENT 1 addr=1112a1f08
  Chunk        1112a1f18 sz=   523384    freeable  "kxs-heap-w     "  
 ds=110a41178
 .........
 EXTENT 122 addr=1122b1c20
  Chunk        1122b1c30 sz=     3424    free      "               "
  Chunk        1122b2990 sz=    16408    freeable  "kxs-heap-w     "  
 ds=110a41178
  Chunk        1122b69a8 sz=     4120    freeable  "kxs-heap-w     "  
 ds=110a41178
  Chunk        1122b79c0 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        1122b89f8 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        1122b9a30 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        1122baa68 sz=     4152    freeable  "kxsFrame4kPage "
 ..........
 EXTENT 124 addr=110f31ba8
  Chunk        110f31bb8 sz=     3184    free      "               "
  Chunk        110f32828 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        110f33860 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        110f34898 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        110f358d0 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        110f36908 sz=     4152    freeable  "kxsFrame4kPage "
  Chunk        110f37940 sz=     4152  NEXT NEXT CHUNK'S PREVIOUS POINTER NOT
 POINTING TO NEXT CHUNK 737420756e626564
  freeable  "kxsFrame4kPage "
 .....
 110F39A10 00000000 00000000 00000000 00000000  [................]
  Repeat 1 times
  Chunk        110f38978 sz=     4152  NEXT CHUNK'S PREVIOUS POINTER NOT
 POINTING TO CURRENT CHUNK 737420756e626564
  freeable  "kxsFrame4kPage "


and the call stacks:

----- Call Stack Trace -----
calling              call     entry                argument values in hex    
location             type     point                (? means dubious value)    
-------------------- -------- ------------------------------------------------
kghrcdepth  kghrcappl  kghfrempty_ex  qesmmIPgaFreeCb  ksu_dispatch_tac sorgetqbf  
qersoFetch  qerjotFetch  qerjotFetch  qerjotFetch qerjotFetch  rwsfcd  qerhjFetch  
qerjotFetch  qerjotFetch  rwsfcd qerhjFetch  rwsfcd  qerhjFetch  qerjotFetch  
qerjotFetch qerjotFetch  qerghFetch  qerwnFetch  rwsfcd  qeruaFetch  qervwFetch
qerghFetch  qerflFetchOutside  rwsfcd  qerltFetch  insdlexe insExecStmtExecIniEngine  

---- Call Stack Trace -----
calling              call     entry                argument values in hex    
location             type     point                (? means dubious value)    
-------------------- -------- ------------------------------------------------
kgeadse  kgerinv_internal  kgerinv  kgeasnmierr  rworupo  qersoFetch  opifch2 


- The following debuging steps are used to determine the root cause, but without success:

>>>>> The PLSQL block BadData.CheckObject, doesn't find a corruption:

 SQL> exec
 BadData.CheckObject('TESTCASE','DTVORHABENVERSIONEN',DoChars=>TRUE);
 Table check for TESTCASE.DTVORHABENVERSIONEN found no corrupt data
 
 PL/SQL procedure successfully completed.
 Procedure created.
 
>>>>> From Doc ID 869305.1, running:
 
 declare
 cursor c is select rowid from &&table_name order by rowid asc;
 dummy varchar2(1);
 corrupt_row exception;
 pragma exception_init(corrupt_row, &error_to_catch);
 row_id rowid;
 begin
 for c_cur in c
 loop
 begin
 row_id := c_cur.rowid;
 insert into table_corrupt_copy
 select anmerkung  from &&table_name where rowid=c_cur.rowid;
 exception
 when corrupt_row then
 p_table_corrupt(row_id);
 end;
 end loop;
 end;
 /

returns:
 
 No errors.
 PL/SQL procedure successfully completed.
 
 Checking the no of rows in original table:
 old   1: select '&&table_name',count(*) from &&table_name
 new   1: select 'DTVORHABENVERSIONEN',count(*) from DTVORHABENVERSIONEN;
 
 DTVORHABENVERSIONE   COUNT(*)
 ------------------- ----------
 DTVORHABENVERSIONEN    4156151
 
 Checking the no of rows in copy table:
 
 TABLE_CORRUPT_COP   COUNT(*)
 ------------------ ----------
 table_corrupt_copy    4156151

 Showing the rowid's as catched by the exception handler as set:
 no rows selected

>>>>> The table is analyzed without errors:

 SQL> analyze table TESTCASE.DTVORHABENVERSIONEN validate structure cascade;
 Table analyzed.


 

Changes

The issue is reported after an upgrade from 10gR2 to 11gR2.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.