Menu

ora-600 due to test MasterDetail

Help
2011-10-21
2013-04-30
  • ivan goncharov

    ivan goncharov - 2011-10-21

    Hello

    When i ran testMasterDetail from LDI sources, i in all probability (50% or more) i got ora-600 error.
    More likely it's happed on second time. when index was created before and then dropped. But i am not sure.
    Something like this:

    *** Running SQLUnit file: C:\Shared\lucene-install-3.3.0.1.0\lucene-odi\db\testMasterDetail  
    [sqlunit] sqlunit-ant: Error setting transaction property error (java.sql.SQLException): Закрытое соединение
    : No rows example (63ms)
    Running test[3]: Add new rows (562ms)
    Running test[4]: Adding rows to detail table (16ms)
    Running test[5]: Update master table (172ms)
    Running test[6]: Update datail table (31ms)
    Running test[7]: Add new rows on master table (109ms)
    Running test[8]: Add new rows on detail table (16ms)
    Running test[9]: Add new rows on master table (94ms)
    Running test[10]: Add new rows on detail table (94ms)
    Assertion "exception-matches" failed (result != exception)
    *** expected:
    <result />
    *** but got:
    <result>
      <exception>
        <code>600</code>
        <message>ORA-00600: internal error code, arguments: [ktcxbr0_1], [0xAC9A4444], [67112451], [2097152], [], [], [], [], [], [], [], []
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 152
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 388
    ORA-25228: timeout or end-of-fetch during message dequeue from LUCENE.IT1$Q
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 279
    ORA-06512: at line 1</message>
      </exception>
    </result>
    Error adding new rows
    Running test[11]: Update master table (94ms)
    Error setting transaction property error (java.sql.SQLException): Закрытое соединение
    Running test[12]: two row select (94ms)
    

    I prepared a test case where i tried to throw away all not important and increase  probability of getting error:

    --set serveroutput on
    clear;
    prompt 1. Create table t1
    create table t1 (
    f1 number,
    f2 varchar2(200),
    f3 varchar2(200),
    F4 number unique);
    insert into t1 values (1, 'ravi','user data1',101);
    insert into t1 values (3, 'murthy','user data3',103);
    create table t2 (
    f5 NUMBER,
    f6 varchar2(200), 
    f7 DATE);
    insert into t2 values (101, 'extra data1',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-1);
    insert into t2 values (103, 'extra data3',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-3);
    prompt 4. sample usage of user data stores
    create index it1 on t1(f2) indextype is lucene.LuceneIndex 
      parameters('Stemmer:English');
    alter index it1 
      parameters('UserDataStore:org.apache.lucene.indexer.DefaultUserDataStore');
    alter index it1 
      parameters('ExtraCols:L$MT.f3 "f3",L$MT.f4 "f4",t2.f6 "f6",t2.f7 "f7";ExtraTabs:t2;WhereCondition:L$MT.f4=t2.f5(+)');
    alter index it1 
      parameters('FormatCols:f4(000),f7(day),f3(NOT_ANALYZED)');
    prompt 6. Force to re-index all
    alter index it1 rebuild
      parameters('LogLevel:ALL');
    prompt 7. alter index
    alter index it1 parameters('MaxBufferedDocs:500;AutoTuneMemory:false;LogLevel:ALL');
    prompt 8. Add new rows (1)
    INSERT INTO t1 VALUES (6, 'he abhorred accents','user data6',106);
    INSERT INTO t1 VALUES (7, 'does','user data7',107);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 9. Adding rows to detail table (1)
    INSERT INTO t2 VALUES (106, 'extra data6',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-6);
    INSERT INTO t2 VALUES (107, 'extra data7',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-7);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 10. Add new rows (2)
    INSERT INTO t1 VALUES (36, 'he abhorred accents','user data6',306);
    INSERT INTO t1 VALUES (37, 'does','user data7',307);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 11. Adding rows to detail table (2)
    INSERT INTO t2 VALUES (306, 'extra data6',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-6);
    INSERT INTO t2 VALUES (307, 'extra data7',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-7);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 12. Add new rows on master table (3)
    INSERT INTO t1 VALUES (16, 'ravi marcelo','user data16',116);
    INSERT INTO t1 VALUES (17, 'marcelo','user data17',117);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 13. Add new rows on detail table (3)
    INSERT INTO t2 VALUES (116, 'extra data16',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-16);
    INSERT INTO t2 VALUES (117, 'extra data17',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-17);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 14. Add new rows on master table (4)
    INSERT INTO t1 VALUES (26, 'hello world','user data26',026);
    INSERT INTO t1 VALUES (27, 'cdrom','user data27',027);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 15. Add new rows on detail table (4)
    INSERT INTO t2 VALUES (26, 'extra data26',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (27, 'extra data27',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 16. Add new rows on master table (5)
    INSERT INTO t1 VALUES (56, 'hello world','user data56',056);
    INSERT INTO t1 VALUES (57, 'cdrom','user data57',057);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 17. Add new rows on detail table (5)
    INSERT INTO t2 VALUES (056, 'extra data56',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (057, 'extra data57',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 18. Add new rows on master table (6)
    INSERT INTO t1 VALUES (66, 'hello world','user data66',066);
    INSERT INTO t1 VALUES (57, 'cdrom','user data67',067);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 19. Add new rows on detail table (6)
    INSERT INTO t2 VALUES (066, 'extra data66',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (067, 'extra data67',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 20. Add new rows on master table (7)
    INSERT INTO t1 VALUES (76, 'hello world','user data76',076);
    INSERT INTO t1 VALUES (77, 'cdrom','user data67',077);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 21. Add new rows on detail table (7)
    INSERT INTO t2 VALUES (076, 'extra data76',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (077, 'extra data77',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 21. Add new rows on master table (8)
    INSERT INTO t1 VALUES (86, 'hello world','user data86',086);
    INSERT INTO t1 VALUES (87, 'cdrom','user data87',087);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 22. Add new rows on detail table (8)
    INSERT INTO t2 VALUES (086, 'extra data86',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (087, 'extra data87',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 23. Add new rows on master table (9)
    INSERT INTO t1 VALUES (96, 'hello world','user data96',096);
    INSERT INTO t1 VALUES (97, 'cdrom','user data97',097);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 24. Add new rows on detail table (9)
    INSERT INTO t2 VALUES (096, 'extra data96',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-26);
    INSERT INTO t2 VALUES (097, 'extra data97',to_date('FRI, 31 AUG 2007 06:28:19 GMT','DY, dd MON YYYY HH24:MI:SS "GMT"','NLS_DATE_LANGUAGE = AMERICAN')-27);
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    /
    prompt 29. drop
    drop table t2;
    drop table t1;
    

    i gave gotten next:

    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
    Connected as LUCENE@FMS_TEST
    
    1. Create table t1
    4. sample usage of user data stores
    6. Force to re-index all
    7. alter index
    8. Add new rows (1)
    9. Adding rows to detail table (1)
    10. Add new rows (2)
    11. Adding rows to detail table (2)
    12. Add new rows on master table (3)
    13. Add new rows on detail table (3)
    14. Add new rows on master table (4)
    15. Add new rows on detail table (4)
    
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    
    ORA-00600: internal error code, arguments: [ktcxbr0_1], [0xAC9A4444], [67112451], [2097152], [], [], [], [], [], [], [], []
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 152
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 388
    ORA-25228: timeout or end-of-fetch during message dequeue from LUCENE.IT1$Q
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 279
    ORA-06512: at line 3
    16. Add new rows on master table (5)
    17. Add new rows on detail table (5)
    18. Add new rows on master table (6)
    19. Add new rows on detail table (6)
    20. Add new rows on master table (7)
    21. Add new rows on detail table (7)
    21. Add new rows on master table (8)
    22. Add new rows on detail table (8)
    
    BEGIN
      LuceneDomainIndex.sync('IT1');
    END;
    
    ORA-00600: internal error code, arguments: [ktcxbr0_1], [0xAC9A4444], [67112451], [2097152], [], [], [], [], [], [], [], []
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 152
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 388
    ORA-25228: timeout or end-of-fetch during message dequeue from LUCENE.IT1$Q
    ORA-06512: at "LUCENE.LUCENEDOMAININDEX", line 279
    ORA-06512: at line 3
    23. Add new rows on master table (9)
    24. Add new rows on detail table (9)
    29. drop
    

    I reproduced it for LDI 3.0 and 3.3 on Oracle 11.2.0.1.0 and 11.2.0.2.0 under window and Linux platforms.
    Could anybody try to repeat this results?

    I tried to find this bug on oracle metalink but there i didn't find anything. Google keep silent too.

     
  • Curtis W. Ruck

    Curtis W. Ruck - 2012-02-03

    I've seen this exact error with the newest LDI 3.5.0.1.0 and 11.2.0.3 on Win64 & Linux (RHEL 5.6).  I can provide the incident dump if someone wants to troubleshoot.

     
  • Marcelo F. Ochoa

    Hi:
      First sorry for the delay, I was on summer vacations.
      Unfortunately I can't reproduce the error on my Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 Linux :(
      Here the output of the test case:

    [mochoa@localhost odi]$ sqlplus LUCENE/LUCENE@test @/tmp/testcase.sql 
    SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 7 08:36:39 2012
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    1. Create table t1
    Table created.
    1 row created.
    1 row created.
    Table created.
    1 row created.
    1 row created.
    4. sample usage of user data stores
    Index created.
    Index altered.
    Index altered.
    Index altered.
    6. Force to re-index all
    Index altered.
    7. alter index
    Index altered.
    8. Add new rows (1)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    9. Adding rows to detail table (1)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    10. Add new rows (2)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    11. Adding rows to detail table (2)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    12. Add new rows on master table (3)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    13. Add new rows on detail table (3)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    14. Add new rows on master table (4)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    15. Add new rows on detail table (4)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    16. Add new rows on master table (5)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    17. Add new rows on detail table (5)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    18. Add new rows on master table (6)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    19. Add new rows on detail table (6)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    20. Add new rows on master table (7)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    21. Add new rows on detail table (7)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    21. Add new rows on master table (8)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    22. Add new rows on detail table (8)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    23. Add new rows on master table (9)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    24. Add new rows on detail table (9)
    1 row created.
    1 row created.
    PL/SQL procedure successfully completed.
    29. drop
    Table dropped.
    Table dropped.
    SQL> exit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    

       If you have a way to post a link for downloading the incident file I can take a quick look to see what is a problem. Usually an ora-0600 errors is attached to a RDBMS bug, but looking at the code that throws the error may there is a workaround for LDI.
       Best regards, Marcelo.

     

Log in to post a comment.