ORA-600 [kxfpqsod_qc_sod] During Parallel Queries With Nested-loop and Filter Plans

(Doc ID 1954837.1)

Last updated on JULY 06, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.0. to 12.1.0.1 [Release 11.2 to 12.1]
Information in this document applies to any platform.

Symptoms

With Concurrent DDL and Parallel Workload(Queries+PMOP),Parallel queries with nested-loop and filter plans may fail with ORA-600 [kxfpqsod_qc_sod]

Trace file may contain the failing query and stack matching below:
 ----- Current SQL Statement for this session (sql_id=---) -----
 declare
      par qgen.qgen_type;
      i number :=1;
 begin
    loop
     par.no_of_tables :=4;
     if (bitand( round(dbms_random.random),1)=1) then
         par.grpby :=true;
     else
         par.grpby :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
         par.orderby :=true;
    else
         par.orderby :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
         par.ASCII_INNER_JOIN :=true;
     else
         par.ASCII_INNER_JOIN :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
        par.ASCII_LEFT_O_JOIN :=true;
     else
         par.ASCII_LEFT_O_JOIN :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
         par.ASCII_RIGHT_O_JOIN :=true;
     else
         par.ASCII_RIGHT_O_JOIN :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
         par.left_o_join :=true;
     else
         par.left_o_join :=false;
     end if;
     if (bitand( round(dbms_random.random),1)=1) then
         par.right_o_join :=true;
     else
         par.right_o_join :=false;
     end if;
     par.dbg :=false;
     par.testhint := i;
     par.rowcnt:=500000;
  qgen.q_run(par);
   i:=i*2;
    exit when i>256;
    i:=i*2;
    exit when i>256;
    end loop;
 end;

STACK
------

 Error: ORA-600 [kxfpqsod_qc_sod] [] [] [] [] [] [] [] [] [] [] []
 [00]: dbgexProcessError [diag_dde]
 [01]: dbgeExecuteForError [diag_dde]
 [02]: dbgePostErrorKGE [diag_dde]
 [03]: dbkePostKGE_kgsf [rdbms_dde]
 [04]: kgeadse []
 [05]: kgerinv_internal []
 [06]: kgerinv []
 [07]: kgeasnmierr []
 [08]: kxfpqsod_qc_sod [Parallel_Execution]<-- Signaling
 [09]: kxfpqsod [Parallel_Execution]
 [10]: kxfrdel [Parallel_Execution]
 [11]: kxsffir [cursor]
 [12]: kxsFreeWorkArea [cursor]
 [13]: kxsFreeExecutionHeap [cursor]
[14]: kksumc [cursor]
[15]: kksCancelCursor [cursor]
 [16]: kksCloseCursor [cursor]
 [17]: opicca []
 [18]: kxsFastCloseCursor [cursor]
 [19]: kgscReleaseACursor []
 [20]: kgscReleaseCursorGroup []
 [21]: pfrust []
 [22]: pevm_RET []
 [23]: pfrinstr_RET []
 [24]: pfrrun_no_tool []
 [25]: pfrrun []
 [26]: plsql_run []
 [27]: peicnt []
 [28]: kkxexe []
 [29]: opiexe []
 [30]: kpoal8 []
 [31]: opiodr []
 [32]: ttcpip []
 [33]: opitsk []
 [34]: opiino []
 [35]: opiodr []
[36]: opidrv []
 [37]: sou2o []
 [38]: opimai_real []
 [39]: ssthrdmain []

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms