on 09-09-2015 5:08 PM
Hi,
I had this stack which caused IQ to crash after an attempt to insert a duplicate key when running an insert select:
I. 09/08 17:19:46. 0000000466 Exception Thrown from s_ohcins.cxx:722, Err# 0, tid 8 origtid 583
I. 09/08 17:19:46. 0000000466 O/S Err#: 0, ErrID: 6145 (hgex_dataexception); SQLCode: -1002003, SQLState: 'QGA03', Severity: 14
I. 09/08 17:19:46. 0000000466 [20505]: Tried to insert a duplicate value into a unique index DW.DW_PAR_QUERIES.ASIQ_IDX_T822_I17_HG on row 1968.
-- (s_ohcins.cxx 722)
I. 09/08 17:19:46. 0000000466 [20917]: Delete of 1 rows started for table:
I. 09/08 17:19:46. 0000000466
I. 09/08 17:19:46. 0000000466 **************************************************
I. 09/08 17:19:46. 0000000466 *** Sybase IQ Abort:
I. 09/08 17:19:46. 0000000466 *** From: st_server.cxx:1442
I. 09/08 17:19:46. 0000000466 *** PID: 23724032
I. 09/08 17:19:46. 0000000466 *** Message: caught signal 11, program abort
I. 09/08 17:19:46. 0000000466 *** Thread: 15164 (TID: 😎
I. 09/08 17:19:46. 0000000466 **************************************************
I. 09/08 17:19:46. 0000000466
I. 09/08 17:19:46. 0000000466 ** Error from IQ connection: SA connHandle: 44 SA connID: 26 IQ connID: 0000000466 User: DW
I. 09/08 17:19:46. 0000000466 ** Time of error: 2015-09-08 17:19:46
I. 09/08 17:19:46. 0000000466 ** IQ Version: Sybase IQ/15.4.0/150610/P/ESD6
after that sever the stack has :
===== Thread Number 15164 (IQ connID: 0000000466) =====
I. 09/08 17:19:47. 0000000466 pc: 0x9000000313bf8e8 .pcstkwalk(stk_trace*,int,db_log*,hos_fd*)+0x1c8()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000313bf1d8 .ucstkgentrace(int,int)+0xb8()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000313bd964 .DumpAllThreads(const char*,unsigned int,int)+0x184()
I. 09/08 17:19:47. 0000000466 pc: 0x900000030b60078 .hos_ABORT(const char*,unsigned int,const char*,char*,char*)+0x1d8()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000313c52d4 .SigHndlr+0x54()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000314b6a70 .s_btParallelCursor::SetDeleteNotifier(int,void*,int(*)(void*,const void*,const int,const void*))+0x10()
I. 09/08 17:19:47. 0000000466 pc: 0x900000031fd6f7c .hs_word::LargeDelete(const s_bm&,int)+0x19c()
I. 09/08 17:19:47. 0000000466 pc: 0x900000031fd5598 .hs_word::Delete(const s_bm*,unsigned long,int,int,s_CKInfo*,const hos_ValueRange*)+0x238()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000310679f8 .hdb_delete_indices::Unit_of_Work(int)+0xf8()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000310681a4 .hdb_delete_indices::hdb_delete_index_iter::ExecWork(int&,unsigned int)+0xe4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003152ea84 .workAllocator::DoWork(unsigned int)+0xe4()
I. 09/08 17:19:47. 0000000466 pc: 0x900000031532bd0 .workAllocator::sDoWork(workAllocator*,unsigned int)+0x30()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003217bfb4 .hos_team::StartWork(void(*)(void*,void*),void*)+0x114()
I. 09/08 17:19:47. 0000000466 pc: 0x900000031532b10 .hos_team::Exec(hos_workIter&)+0x50()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000310668cc .hdb_delete_indices::Delete_Indices()+0x24c()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000310639f4 .hdb_hdelete::Delete(const char*,hdb_hinsertindexlist*,unsigned int)+0x8b4()
I. 09/08 17:19:47. 0000000466 pc: 0x900000031b8f7e8 .hdb_hdelete::Delete(const char*)+0x28()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003154aa2c .db_sqlinsert::DeleteDisplayInsertError(unsigned int,s_bm*)+0x12c()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003154b044 .db_sqlinsert::VExecute()+0x4c4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003157f4c8 .db_sqlinsert::Execute()+0x388()
I. 09/08 17:19:47. 0000000466 pc: 0x900000030beafec .st_command::DoCmdThroughResourceGate()+0x36c()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000321b4df8 .st_iqdml::Insert(a_statement*,UIConnection*,UICursor*,unsigned int*)+0xd8()
I. 09/08 17:19:47. 0000000466 pc: 0x90000003212cd88 .UIQDML_Insert+0x48()
I. 09/08 17:19:47. 0000000466 pc: 0x900000030bf80a0 .st_SAIQInterfaceInfo::callFunction()+0x40()
I. 09/08 17:19:47. 0000000466 pc: 0x900000032243650 .st_SAIQInterface::RunIQFunc(st_SAIQInterfaceInfo*)+0x170()
I. 09/08 17:19:47. 0000000466 pc: 0x900000030bf8fa0 .st_SAIQInterface::Execute(int,void*,unsigned int(*)(void*,void*),void*,unsigned int)+0x600()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000321f9ca8 .saint_iqthresholddml::Insert(a_statement*,IConnection*,ICursor*,unsigned int*)+0xe8()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002fa3f85c .InsertFromHost(a_db_cursor*,a_statement*,unsigned int)+0xfc()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002fa3f424 .dbi_insert(Connection*,a_statement*,a_stmt*,a_stmt_identifier*,unsigned int,unsigned int,TableDef*)+0x2e4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f80773c .DoExecuteBodyLocal(Connection*,a_stmt*,a_statement*,a_stmt_identifier*,bool,unsigned int,unsigned short)+0x3fc()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f7f816c .DoExecuteBody(Connection*,a_stmt*,a_statement*,a_stmt_identifier*,bool,unsigned int,unsigned short)+0x12c()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f7f74b8 .DoExecuteStmt(Connection*,a_stmt*,a_statement*,a_stmt_identifier*,unsigned short,unsigned int)+0x2b8()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f7f9b1c .db__execute(Connection*,an_sqlpres_receive*)+0x27c()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6b7a78 .RequestProcedure::call()+0xbb8()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f8501b8 .Context::call(Procedure*,Context**)+0x78()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f851c08 .Worker::call_on_stack(Procedure*)+0x48()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6b9404 .TopProcedure::call()+0x44()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f851518 .Worker::spawn(Procedure*)+0x98()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6b9604 .EngStream::handle_ind(unsigned char,unsigned int)+0xc4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6b9fd4 .EngStream::execute()+0x4f4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6bb948 .RQBaseItem::do_work(Worker*)+0x48()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f5561c4 .RequestQueue::worker_body()+0xc4()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f6bb820 .request_task(void*)+0x80()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f5f3288 .run_task_body+0x48()
I. 09/08 17:19:47. 0000000466 pc: 0x90000002f5edb94 .UnixTask::pre_body(void*)+0x134()
I. 09/08 17:19:47. 0000000466 pc: 0x9000000004f5e14 ()
I've done some research and found that several CRs related to insert on duplicate key on HG unique and with WD index may cause IQ server to fail but most of them are fixed starting from ESD#3 and higher
Any clues for this?
Thank you
Regards
Jose
Hi Jose,
Yes it looks similar to CR#716303 fixed in ESD#3 and thus in ESD#6.
I'd suggest check the table consistency :
sp_iqcheckdb 'verify table <table_name>' ;
If no errors detected then options below set before query execution may help as workaround:
set temporary option WD_DELETE_METHOD=1 ;
or
set temporary option Core_Options27=1 ;
Regards,
Tayeb.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you Tayeb,
I'll try these options and check how it goes
Regards
Jose
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.