Symptom
1. An IQ server got crashed due to a problematic compound statement below.
create table #TEMP( "COL001" char(20) null, ) // <------ Two statements are not separated by a semicolon and run at once.
select 'sunseo'="NUMBER"(),"COL002"
from "OWNER001"."TAB001"
order by "COL002" asc
I. 03/16 16:10:46. 0001340413 **************************************************
I. 03/16 16:10:46. 0001340413 *** SAP IQ Abort:
I. 03/16 16:10:46. 0001340413 *** From: stcxtlib/st_server.cxx:1921
I. 03/16 16:10:46. 0001340413 *** PID: 13925
I. 03/16 16:10:46. 0001340413 *** Message: caught signal 11, program abort
I. 03/16 16:10:46. 0001340413 *** Thread: 416 (TID: 28)
I. 03/16 16:10:46. 0001340413 **************************************************
2. Analysis
1) Stacktrace
_Z9hos_ABORTPKcjS0_PcS1_ + .................
SigHndlr + 0x90 at stcxtlib/st_server.cxx:1921 [.................
---- Signal 11 (SIGSEGV) delivered ----
_ZN16hos_basic_mbtextIPhiiE6RewindEv at .................
_ZN16hos_basic_mbtextIPhiiE3SetES0_P13hos_dmcontexti at .................
_ZN16hos_basic_mbtextIPhiiE3SetES0_P13hos_dmcontexti at .................
_Z26hos_keycond_dtvchar_actualPvS_jP13hos_dmcontext + .................
_ZN6hs_ohc19GetHashFromLookupFPEv + 0xed0 at .................
_ZN11hs_ohcGroupI14s_btfdiskblock9s_btfitemE19GetUnconditionedKeyEPviS3_Pi + .................
_ZN11hs_ohcGroupI14s_btfdiskblock9s_btfitemE12FetchOrderedERiPvPiiRy + .................
_ZN14s_fetchOrdered5FetchEv + 0x120 at .................
_ZN9vp_Cursor5FetchEv + .................
_ZN22dfo_VerticalLeafCursor9FetchOpusEv + 0x2a0 at .................
_ZN3dfo5FetchEv at .................
_ZN3dfo10FetchChildEi at .................
_ZN21dfo_NonDeterministics9FetchOpusEv + .................
_ZN8dfo_Root9FetchOpusEv + .................
2) The customer ran it without semicolon to divide the two statements.
It resulted in running the select statement only, without creating the temporary table in the first statement.
Actually, the reason the customer ran the compound statement was to avoid a specific routine by a database security tool.
The real purpose of the statement is to run the second statement(select 'sunseo'= .......) with skipping the first one.
3) When running the compound statement using dbisqlc, it fails as below.
Error in file "aa.sql" at line 0
Result set not permitted in '<batch statement>'
But, it runs fine when running it through dbisql.
Actually, it's wrong expression of placing a comma(,) in front of closing parenthesis(')') in syntax perspective.
create table #TEMP( "COL001" char(20) null, )
4) This is duplicate with CR 781529 which is still under investigation.
[CR 781529]
hos_mbtext::cnv_to_dtvchar_cond_actual(.................
hos_keycond_dtvchar_actual(.................
hs_ohc::GetHashFromLookupFP()+.................
hs_ohcGroup<s_btfdiskblock, s_btfitem>::GetUnconditionedKey(.................
hs_ohcGroup<s_btfdiskblock, s_btfitem>::FetchOrdered(.................
s_fetchOrdered::Fetch()+.................
vp_Cursor::Fetch()+.................
dfo_VerticalLeafCursor::FetchOpus()+.................
dfo_Filter::FetchOpus()+.................
dfjo_Hash::Fetch_T2_IntoHash()+.................
Read more...
Environment
SAP IQ 16.0. SP10 PL08
Product
Keywords
IQ, crash, hos_keycond_dtvchar_actual, GetHashFromLookupFP, hos_basic_mbtext, hos_basic_mbtext, , 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.