Symptom
The server could deadlock/hang if a dbspace were being extended at the same time as a user-defined event was being loaded or reloaded.
If the file $IQLOGDIR16/DumpAllThreads exists, a stack trace is generated and you can see 2 threads like the following:
===== Thread Number 140166073022208 (IQ connID: 0000000634) =====
pcstkwalk(stk_trace*, int, db_log*, hos_fd*)+0x32
ucstkgentrace(int, int)+0x121
UnixTask::wait(unsigned short)+0x95
BaseMutex::wait_for_mutex(Task*, int)+0x6e
BaseMutex::get(Task*, int)+0x9e
DatabaseFile::ExtendFile(unsigned int, unsigned int)+0x175
DatabaseFile::AllocPages(a_page_type, unsigned int, int, unsigned int*, a_page_bit_map*, unsigned int)+0x13b
DatabaseFile::alloc_page(a_page_type, unsigned int, unsigned int)+0x28
alloc_temp_page(Database*, a_page_type)+0x17
RelocatableHeap::alloc_page(Database*, a_heap_type, Worker*)+0x164
RelocatableHeap::Alloc(unsigned long, unsigned int)+0x156
SQLScanner::LexInit(UTIStream&, a_parse_goal)+0xae
SQLParser::Parse(UTIStream&, unsigned int, a_parse_status*, a_statement**)+0x48
ParseSupport::StringToCommand(UTIStream&, Connection*, IDBHeap*, a_parse_parms*, a_parse_status*, a_statement**, unsigned int, SQLFlagger*)+0x5b
parse(a_statement_heap_ref*, dfv_Value const&, a_parse_goal, unsigned int*, unsigned int, unsigned int, unsigned int*, SQLFlagger*, char const*)+0x4d5
PrepareStringUsingHeap(a_statement_heap_ref*, dfv_Value const&, a_parse_goal, unsigned int*, unsigned int, unsigned int, SQLFlagger*, char const*)+0x6a
PrepareString(a_statement_heap_ref*, dfv_Value const&, a_parse_goal, unsigned int*, unsigned int, unsigned int, unsigned int)+0xf0
SQLAEngineSupport::ExecSQLStringWithEscapes(a_servertype, char*, unsigned int)+0xe1
IQResultSet::FetchDataFromResultSetCursor(IConnection*, void*)+0xd6
IQResultSet::FetchResultSet(IConnection*, IQResultSetInfo*, char*)+0x113
.......
===== Thread Number 140166084060928 (IQ connID: 0000000635) =====
pcstkwalk(stk_trace*, int, db_log*, hos_fd*)+0x32
ucstkgentrace(int, int)+0x121
UnixTask::wait(unsigned short)+0x95
BaseMutex::wait_for_mutex(Task*, int)+0x6e
BaseMutex::get(Task*, int)+0x9e
DatabaseFile::AddToFreeList(unsigned int, unsigned int)+0xfd
DatabaseFile::UnlockAndFreePage(CacheInfo*, unsigned int, a_page_type, unsigned int)+0x1e4
RelocatableHeap::free_page(a_mem_page*, Database*, Worker*)+0x53
RelocatableHeap::~RelocatableHeap()+0x37
DB_Free_event_procedure(a_proc_def*)+0x39
SetEventHandlerAction(EventDef*, dfv_Value const&)+0x48
ReloadEventDef(EventDef*)+0x192
EventHandler::do_request()+0x468
Worker::spawn(Procedure*)+0x49
RQInternalBaseItem::do_work(Worker*)+0x3c
RequestQueue::worker_body()+0x66
request_task(void*)+0x65
run_task_body+0x2d
UnixTask::pre_body(void*)+0x77
Read more...
Environment
- IQ 16 any SP any platform
- SQL Anywhere 16 any platform
Product
Keywords
CR 797425 ; 797425 ; hang ; deadlock ; mutex ; atabaseFile::ExtendFile ; DatabaseFile ; ExtendFile ; alloc_temp_page ; event ; DB_Free_event_procedure ; DatabaseFile::UnlockAndFreePage ; DatabaseFile ; UnlockAndFreePage ; DatabaseFile::AddToFreeList ; AddToFreeList ; BaseMutex ; , 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.
SAP Knowledge Base Article - Preview