ORA-00600 error (arguments [13009], [5000], …) on Oracle 10.2.0.2 Database
Posted by patrick on Jan 7th, 2008
We experienced the following error on one of our Oracle test databases:
ORA-00600: internal error code, arguments: [13009], [5000], [1], [17], [1], [], [], []
The statement which generated this error was a simple select ... for update nowait:
SELECT rowid, key, suffix, status
FROM table1
WHERE KEY = 'example_key'
AND suffix = 'co.uk'
AND status = 0
FOR UPDATE NOWAIT;
ERROR at line 2:
ORA-00600: internal error code, arguments: [13009], [5000], [1], [17], [1], [], [], []
However, performing the same operation accessing the row via Oracle rowid was successful:
SELECT rowid, key, suffix, status FROM table1 WHERE rowid = 'AAAPBRAAPAAAAI2AAk' FOR UPDATE NOWAIT; ROWID KEY SUFFIX STATUS ------------------ ------------- ---------- ------------------------ AAAPBRAAPAAAAI2AAk example-key co.uk 0
This led me to believe there must be a problem with the access method used by the first statement, probably a corruption on an index. Performing an explain plan revealed two indexes were used by the first statement:
explain plan for
SELECT rowid, key, suffix, status
FROM table1
WHERE KEY = 'example_key'
AND suffix = 'co.uk'
AND status = 0
FOR UPDATE NOWAIT;
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 12 (9)| 00:00:01 |
| 1 | FOR UPDATE | | | | |
| 2 | BITMAP CONVERSION TO ROWIDS | | 1 | 12 (9)| 00:00:01 |
| 3 | BITMAP AND | | | | |
| 4 | BITMAP CONVERSION FROM ROWIDS| | | | |
|* 5 | INDEX RANGE SCAN | IX1_TABLE1 | 1 | 3 (0)| 00:00:01 |
| 6 | BITMAP CONVERSION FROM ROWIDS| | | | |
| 7 | SORT ORDER BY | | | | |
|* 8 | INDEX RANGE SCAN | PK_TABLE1 | 1 | 8 (0)| 00:00:01 |
---------------------------------------------------------------------------------------
I decided to validate the structure of the table and indexes, but this revealed no errors:
analyze table table1 validate structure cascade; Table analyzed.
I next rebuilt the indexes used by the query:
alter index pk_table1 rebuild online; Index altered. alter index ix1_table1 rebuild online; Index altered.
This resolved the problem:
SELECT rowid, key, suffix, status
FROM table1
WHERE KEY = 'example_key'
AND suffix = 'co.uk'
AND status = 0
FOR UPDATE NOWAIT;
ROWID KEY SUFFIX STATUS
------------------ ------------- ---------- ------------------------
AAAPBRAAPAAAAI2AAk example-key co.uk 0

(1 votes, average: 4 out of 5)