SAP Knowledge Base Article - Preview

3692224 - Query causes stack trace on db_TableDef::FindColumnByID - SAP IQ

Symptom

  • Running user statement caused IQ crash.
  • Following stacktrace is generated. 
  • I. 11/28 13:27:03. 0000000079 TINFO t=2210037238 v=2150678936 c=2210037239 gt=0 gc=0 pcv=0 ME=0 MSE=0 TRR=0 #=0
    I. 11/28 13:27:30. 0000000079 Txn 2210037599 0 2150679038
    I. 11/28 13:27:30. 0000000079 Note: Cursor not updatable: OLAP function in select list 
    I. 11/28 13:27:30. 0000000079 Note: Cursor not updatable: OLAP function in select list 
    I. 11/28 13:27:30. 0000000079 Note: Cursor not updatable: OLAP function in select list 
    I. 11/28 13:27:30. 0000000079  
    I. 11/28 13:27:30. 0000000079  
    I. 11/28 13:27:30. 0000000079 **************************************************
    I. 11/28 13:27:30. 0000000079 ***   SAP IQ Abort:
    I. 11/28 13:27:30. 0000000079 ***      From:  stcxtlib/st_server.cxx:2501
    I. 11/28 13:27:30. 0000000079 ***      PID: 264555
    I. 11/28 13:27:30. 0000000079 ***      Message: caught signal 11, program abort (pc=0x00007ef59d590951, sp=0x00007ef612679530, fp=0x00007ef612679550, addr=0x00000000000003f8)
    I. 11/28 13:27:30. 0000000079 ***      Thread: 139595335857920  (TIX: 8)
    I. 11/28 13:27:30. 0000000079 **************************************************
    I. 11/28 13:27:30. 0000000079  
    I. 11/28 13:27:30. 0000000079 139595335857920 Stacktrace requested from stcxtlib/st_server.cxx:2501 on thread 139595335857920 (TIX 8) start stacktrace
    I. 11/28 13:27:30. 0000000079     **  Error from IQ connection:  SA connHandle: 52  SA connID: 1  IQ connID: 0000000079  User: mpfeif01
    I. 11/28 13:27:30. 0000000079     **  Time of error:  2025-11-28 13:27:30
    I. 11/28 13:27:30. 0000000079     **  IQ Version:  SAP IQ/16.1.050/14315/P/SP05.12
    I. 11/28 13:27:30. 0000000079     **  OS info:  IQ built on: Linux/Linux64 - x86_64 - 3.10.0-327,  Executed on: Linux/cad-ocbplhyb003/4.18.0-553.74.1.el8_10.x86_64/#1 SMP Sun Sep 7 09:23:35 EDT 2025/x86_64
    I. 11/28 13:27:30. 0000000079     **  Command status when error occurred:  CURSOR ACTIVE
    I. 11/28 13:27:30. 0000000079     **  Command text:  
    I. 11/28 13:27:30. 0000000079 with
    I. 11/28 13:27:30. 0000000079 /* Build the base rows with overage and dedup candidates per bal_dt */
    I. 11/28 13:27:30. 0000000079 "ranked" as(select "ma"."cad_acct_id" as "acct_id",
    I. 11/28 13:27:30. 0000000079   "ma"."src_extrct_dt",
    I. 11/28 13:27:30. 0000000079   "ma"."bal_dt",
    I. 11/28 13:27:30. 0000000079   ("ma"."acct_bal"+"COALESCE"("ma"."cl_amt",0)) as "overage",
    I. 11/28 13:27:30. 0000000079   "ROW_NUMBER"() over(partition by
    I. 11/28 13:27:30. 0000000079   "iax"."cad_acct_id","ma"."bal_dt" order by
    I. 11/28 13:27:30. 0000000079   "ma"."src_extrct_dt" desc) as "rn",
    I. 11/28 13:27:30. 0000000079   "dat"."RMC",
    I. 11/28 13:27:30. 0000000079   "dat"."RMNAME",
    I. 11/28 13:27:30. 0000000079   "dat"."LOB",
    I. 11/28 13:27:30. 0000000079   "dat"."SEGMENT"
    I. 11/28 13:27:30. 0000000079   from "cad"."mech_acct_dly_2yr_v" as "ma"
    I. 11/28 13:27:30. 0000000079     join "cad"."IP_ACCT_XREF_ME_V" as "iax"
    I. 11/28 13:27:30. 0000000079     on "iax"."CAD_acct_id" = "ma"."CAD_acct_id"
    I. 11/28 13:27:30. 0000000079     and "iax"."src_stm_rltn_cd" in( 'OW','JO','MO' ) 
    I. 11/28 13:27:30. 0000000079     and("YEAR"("ma"."src_extrct_dt")*100+"MONTH"("ma"."src_extrct_dt")) = "iax"."ym_id"
    I. 11/28 13:27:30. 0000000079     join "cad"."OCIF_COMM_IP_SENSTV_ME_V" as "cip"
    I. 11/28 13:27:30. 0000000079     on "cip"."CAD_IP_ID" = "iax"."cad_ip_id"
    I. 11/28 13:27:30. 0000000079     and "cip"."ym_id" = 202510
    I. 11/28 13:27:30. 0000000079     join "mpfeif01"."ccbdat" as "dat"
    I. 11/28 13:27:30. 0000000079     on "dat"."RMC" = "cip"."rltn_mgr_id"
    I. 11/28 13:27:30. 0000000079   where "dat"."LOB" = 'CCB'
    I. 11/28 13:27:30. 0000000079   and "iax"."ym_id" between 202411 and 202510 and "ma"."CAD_acct_id" = 283),
    I. 11/28 13:27:30. 0000000079 /* Keep the latest extract per bal_dt */
    I. 11/28 13:27:30. 0000000079 "base" as(select "acct_id",
    I. 11/28 13:27:30. 0000000079   "src_extrct_dt",
    I. 11/28 13:27:30. 0000000079   "bal_dt",
    I. 11/28 13:27:30. 0000000079   "overage",
    I. 11/28 13:27:30. 0000000079   "RMC",
    I. 11/28 13:27:30. 0000000079   "RMNAME",
    I. 11/28 13:27:30. 0000000079   "LOB",
    I. 11/28 13:27:30. 0000000079   "SEGMENT"
    I. 11/28 13:27:30. 0000000079   from "ranked"
    I. 11/28 13:27:30. 0000000079   where "rn" = 1),
    I. 11/28 13:27:30. 0000000079 /* Detect transitions using bal_dt chronology */
    I. 11/28 13:27:30. 0000000079 "marked" as(select "acct_id",
    I. 11/28 13:27:30. 0000000079   "src_extrct_dt",
    I. 11/28 13:27:30. 0000000079   "bal_dt",
    I. 11/28 13:27:30. 0000000079   "overage",
    I. 11/28 13:27:30. 0000000079   "RMC",
    I. 11/28 13:27:30. 0000000079   "RMNAME",
    I. 11/28 13:27:30. 0000000079   "LOB",
    I. 11/28 13:27:30. 0000000079   "SEGMENT",
    I. 11/28 13:27:30. 0000000079   "LAG"("overage") over(partition by
    I. 11/28 13:27:30. 0000000079   "acct_id" order by
    I. 11/28 13:27:30. 0000000079   "bal_dt" asc) as "prev_overage",
    I. 11/28 13:27:30. 0000000079   case when "overage" < 0 and("LAG"("overage") over(partition by "acct_id" order by "bal_dt" asc) >= 0
    I. 11/28 13:27:30. 0000000079   or "LAG"("overage") over(partition by "acct_id" order by "bal_dt" asc) is null) then
    I. 11/28 13:27:30. 0000000079     1 else 0 end as "event_start_flag"
    I. 11/28 13:27:30. 0000000079   from "base"),
    I. 11/28 13:27:30. 0000000079 /* Assign event ids cumulatively over bal_dt */
    I. 11/28 13:27:30. 0000000079 "events" as(select "acct_id",
    I. 11/28 13:27:30. 0000000079   "src_extrct_dt",
    I. 11/28 13:27:30. 0000000079   "bal_dt",
    I. 11/28 13:27:30. 0000000079   "overage",
    I. 11/28 13:27:30. 0000000079   "RMC",
    I. 11/28 13:27:30. 0000000079   "RMNAME",
    I. 11/28 13:27:30. 0000000079   "LOB",
    I. 11/28 13:27:30. 0000000079   "SEGMENT",
    I. 11/28 13:27:30. 0000000079   "SUM"("event_start_flag") over(partition by
    I. 11/28 13:27:30. 0000000079   "acct_id" order by
    I. 11/28 13:27:30. 0000000079   "bal_dt" asc rows unbounded preceding) as "event_id"
    I. 11/28 13:27:30. 0000000079   from "marked"),
    I. 11/28 13:27:30. 0000000079 /* Compute event start and last negative bal_dt strictly over negative days */
    I. 11/28 13:27:30. 0000000079 "event_spans" as(select "acct_id",
    I. 11/28 13:27:30. 0000000079   "RMC",
    I. 11/28 13:27:30. 0000000079   "RMNAME",
    I. 11/28 13:27:30. 0000000079   "LOB",
    I. 11/28 13:27:30. 0000000079   "SEGMENT",
    I. 11/28 13:27:30. 0000000079   "event_id",
    I. 11/28 13:27:30. 0000000079   "MIN"(case when "overage" < 0 then "bal_dt" end) as "event_start_date",
    I. 11/28 13:27:30. 0000000079   "MAX"(case when "overage" < 0 then "bal_dt" end) as "last_neg_bal_dt"
    I. 11/28 13:27:30. 0000000079   from "events"
    I. 11/28 13:27:30. 0000000079   group by "acct_id","RMC","RMNAME","LOB","SEGMENT","event_id"
    I. 11/28 13:27:30. 0000000079   having "SUM"(case when "overage" < 0 then 1 else 0 end) > 0)
    I. 11/28 13:27:30. 0000000079 select "acct_id",
    I. 11/28 13:27:30. 0000000079   "RMC",
    I. 11/28 13:27:30. 0000000079   "RMNAME",
    I. 11/28 13:27:30. 0000000079   "LOB",
    I. 11/28 13:27:30. 0000000079   "SEGMENT",
    I. 11/28 13:27:30. 0000000079   "event_start_date",
    I. 11/28 13:27:30. 0000000079   /* carry-forward end date: day before recovery if it exists; else last negative bal_dt */
    I. 11/28 13:27:30. 0000000079   case when "recovery_date" is not null then "DATEADD"("day",-1,"recovery_date")
    I. 11/28 13:27:30. 0000000079   else "last_neg_bal_dt"
    I. 11/28 13:27:30. 0000000079   end as "event_end_date",
    I. 11/28 13:27:30. 0000000079   "recovery_date"
    I. 11/28 13:27:30. 0000000079   /* First positive bal_dt after the last negative bal_dt */
    I. 11/28 13:27:30. 0000000079   from(select "es"."acct_id",
    I. 11/28 13:27:30. 0000000079       "es"."RMC",
    I. 11/28 13:27:30. 0000000079       "es"."RMNAME",
    I. 11/28 13:27:30. 0000000079       "es"."LOB",
    I. 11/28 13:27:30. 0000000079       "es"."SEGMENT",
    I. 11/28 13:27:30. 0000000079       "es"."event_start_date",
    I. 11/28 13:27:30. 0000000079       "es"."last_neg_bal_dt",
    I. 11/28 13:27:30. 0000000079       (select "MIN"("b2"."bal_dt")
    I. 11/28 13:27:30. 0000000079         from "base" as "b2"
    I. 11/28 13:27:30. 0000000079         where "b2"."acct_id" = "es"."acct_id"
    I. 11/28 13:27:30. 0000000079         and "b2"."bal_dt" > "es"."last_neg_bal_dt"
    I. 11/28 13:27:30. 0000000079         and "b2"."overage" > 0) as "recovery_date"
    I. 11/28 13:27:30. 0000000079       from "event_spans" as "es") as "x"
    I. 11/28 13:27:30. 0000000079   order by "acct_id" asc,"event_start_date" asc
    I. 11/28 13:27:30. 0000000079     **  Dump all thread stacks at stcxtlib/st_server.cxx:2501 for PID: 264555
    I. 11/28 13:27:30. 0000000079 ***************** This is the STACKTRACE ***************
    I. 11/28 13:27:30. 0000000079 ===== Thread Number 139595335857920 (IQ connID: 0000000079) =====
    I. 11/28 13:27:30. 0000000079 pc: 0x400e81 backtrace+21
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c913864 pcstkwalk(stk_trace*, int, db_log*, hos_fd*)+34
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c913f8b ucstkgentrace(int, int)+18b
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c91484d DumpAllThreads(char const*, unsigned int, int)+2bd
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c68e221 hos_ABORT(char const*, unsigned int, char const*, char*, char*, sigcontext*, int, int)+4f1
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4f692c SigHndlr+11c
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5185990 <unknown>
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d590951 db_TableDef::FindColumnByID(unsigned int)+1
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c259241 dfe_BaseColumn::OpenCatField(db_TableDef*)+b1
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c2595c0 dfe_BaseColumn::TypeCheck(df_Heap*)+220
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c1fd2b0 df_Evaluable::DepthFirstTypeCheck(df_Heap*)+80
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c223dd6 df_Heap::GenerateCase(void*, opt_QueryExp*, char*)+1f6
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c2038ef df_Heap::GenerateDF(void*, opt_QueryExp*)+151f
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c2111cd df_Heap::GenerateArithExpr(an_expr_node*, an_expr_op, opt_QueryExp*)+ad
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c202940 df_Heap::GenerateDF(void*, opt_QueryExp*)+570
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c2024e2 df_Heap::GenerateDF(void*, opt_QueryExp*)+112
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c2024e2 df_Heap::GenerateDF(void*, opt_QueryExp*)+112
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c64183d opt_SelectList::GenerateDFEs(df_Heap*, opt_QueryExp*)+13d
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63d437 opt_Select::InitializeNestedQueries(opt_QueryExp*)+127
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63d374 opt_Select::InitializeNestedQueries(opt_QueryExp*)+64
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63c68d opt_Select::FindAndProcessSubquery(df_Heap*, a_base_expr*, unsigned int, int)+26d
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63c569 opt_Select::FindAndProcessSubquery(df_Heap*, a_base_expr*, unsigned int, int)+149
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63cfcd opt_Select::FindAndProcessSubquery(df_Heap*, a_plist_node*, unsigned int, int)+3d
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c63d422 opt_Select::InitializeNestedQueries(opt_QueryExp*)+112
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c59d8a5 opt_Driver::GenerateTree(QueryNode*, st_cursor*, a_statement const*, UITable*, UIIndex*, s_bm*, unsigned int*, db_RebuildIndexInfo**, int, a_table*, hos_vector_noerror*, hs_store*, int, db_IQParallelIndexInfo*, rv_MergeCmdState*)+4a5
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4adbcf st_cursorIQtoSA::Parse()+3bf
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4ab24f st_cursorIQtoSA::Describe()+6f
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c249b90 df_DescribeCursor::Parse()+100
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4aa0ff st_command::DoCmdThroughResourceGate()+2f
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4f4763 st_iqdml::DescribeCursor(a_statement*, UIConnection*, UICursor*, a_cursor_spec*)+33
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c1f3884 UIQDML_DescribeCursor+24
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4fbfeb st_SAIQInterfaceInfo::callFunction()+1b
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d56261e st_SAIQInterface::RunIQFunc(st_SAIQInterfaceInfo*)+ce
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59d4fc493 st_SAIQInterface::Execute(int, void*, unsigned int (*)(void*, void*), void*, unsigned int)+353
    I. 11/28 13:27:30. 0000000079 pc: 0x7ef59c926b5f saint_iqthresholddml::DescribeCursor(a_statement*, IConnection*, ICursor*, a_cursor_spec*)+7f
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5e45d18 MakeExternalTabdefs(a_db_cursor*)+4a8
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5e46cbf MakeExternalCursor(a_db_cursor*, an_isolation_level, a_cursor_spec*, a_statement*, unsigned int, unsigned int, unsigned int)+18f
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e63452b9 MakeVolcanoOptimizerCursor(IDBHeap*, a_statement*, an_isolation_level, a_cursor_spec*, unsigned int, unsigned int, PlanInfo*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, df_InternalCursor*, dfv_HostVars**, a_set_of_row_descriptors**, a_query_diagnostics*)+949
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5e46729 dbi_partialopen(IDBHeap*, a_statement*, unsigned int, a_cursor_spec*, PlanInfo*, unsigned int, unsigned int, df_InternalCursor*, a_query_diagnostics*, unsigned int)+169
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fc2dbf a_plan_cache::OpenPartial(a_stmt*, a_statement*, unsigned int, a_cursor_spec*, PlanInfo*)+34f
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fb021e dbi_describe_statement(a_stmt*, unsigned short, unsigned short, a_cursor_spec*, unsigned int*)+27e
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fb09cd db__describe_output(Connection*, an_sqlpres_receive*)+7d
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd2e76 RequestProcedure::call()+ec6
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5d76a41 Worker::spawn(Procedure*)+31
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd6d56 EngStream::handle_ind(unsigned char, unsigned int)+156
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd888f EngStream::execute()+7ff
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd8a0d RQConnItem::do_request()+d
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd07ae RQBaseItem::do_work(Worker*)+1e
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e60144b7 RequestQueue::worker_body()+77
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e5fd1b69 request_task(void*)+89
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e645c82e run_task_body+1e
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e6016118 UnixTask::pre_body(void*)+78
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e517b1ca <unknown>
    I. 11/28 13:27:30. 0000000079 pc: 0x7f21e44ba8d3 clone+43
    I. 11/28 13:27:37. 0000000079 ******************* End of STACKTRACE ******************
    I. 11/28 13:27:37. 0000000079 Current time: 2025-11-28 13:27:37
    I. 11/28 13:27:37. 0000000079  
    I. 11/28 13:27:37. 0000000079 Total Thread Count = 4331
    I. 11/28 13:27:37. 0000000079 Active Thread Count = 1
    I. 11/28 13:27:37. 0000000079 Current time: 2025-11-28 13:27:37
    I. 11/28 13:27:47. 0000000079 Current time: 2025-11-28 13:27:47
    I. 11/28 13:27:47. 0000000079 Current time: 2025-11-28 13:27:47
    I. 11/28 13:27:47. 0000000079 While handling one abort, encountered another abort from the same thread.
    I. 11/28 13:27:47. 0000000079 Calling emergency shutdown.
     ---
    
    =====
    
    In the STDERR:
    
    =====
    
    **************************************************
    ***   SAP IQ Abort:
    ***      From:  stcxtlib/st_server.cxx:2501
    ***      PID: 264555
    ***      Message: caught signal 11, program abort (pc=0x00007ef59d590951, sp=0x00007ef612679530, fp=0x00007ef612679550, addr=0x00000000000003f8)
    ***      Thread: 139595335857920  (TIX: 8)
    **************************************************
    ****************************************************************
    [1] *** IQ Version: SAP IQ/16.1.050/14315/P/SP05.12
    [1] *** SigHndlr called signo=6
    [1] ***  RIP=0x00007f21e44cf52f RSP=0x00007ef612677a40, RFP=0x00007ef6126786d0 ADDR=<unknown>
    [1] ***  IQ base addr=0x7ef59b5a6000 SQLA base addr=0x7f21e59ec000
    [1] ***  pthread_t=0x00007ef61267f700
    


Read more...

Environment

SAP IQ.16.1.SP05.12
SAP IQ.16.1.SP05.15

Product

SAP IQ 16.1

Keywords

writer database crash, sybase iq, signal 11, program abort, query execution failure, emergency shutdown, abort handling, database issue , KBA , BC-SYB-IQ , Sybase IQ , Problem

About this page

This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).

Search for additional results

Visit SAP Support Portal's SAP Notes and KBA Search.