Symptom
- Dropping table after upgrade from 15.4 to 16 SP10 may hang IQ server. Problem table gets dropped after N attempts. All N-1 attempts result in hang and end-user kills IQ spid to get out of this situation.
After upgrading 'alter database upgrade' was run. All the indexes on problem table were rebuilt using sp_iqrebuildindex.
- Threads of interest in 2 pstacks collected couple of minutes apart show following threads of interest contributing to hang
----- Thread 1035 does not move between 2 pstacks. Some table is getting dropped.
Thread 1035 (Thread 0x7f5befc52700 (LWP 33967)): #0 0x000000342ec0f0e3 in pread64 () from /lib64/libpthread.so.0 #1 0x00007f5beb1137dd in hos_pi_pread(hos_fd, void*, unsigned int, long) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #2 0x00007f5beb123e7c in hos_svbio::Read2(unsigned long long, void*, int, int&, int&, unsigned long long*, s_bufman_errorInfo*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #3 0x00007f5beb33588c in hos_mvbio::Read2(unsigned long long, void*, int, int&, int&, unsigned long long*, s_bufman_errorInfo*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #4 0x00007f5bebdf8f97 in s_buf::ReadBufAndVerify(s_bufman_errorInfo*, s_diskblockheader*, unsigned long long, unsigned int, unsigned int, int, short, unsigned long long, unsigned int, int, s_bufmanCallerStats*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #5 0x00007f5beb4d8a51 in s_buf::Read(s_bufman_errorInfo*, unsigned long long, unsigned int, int, short, unsigned long long, unsigned int, unsigned int, s_blockmap const*, s_bufmanCallerStats*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #6 0x00007f5beb4fb473 in s_bufpartition::Find(s_bufman_errorInfo*, s_connectionCacheStats*, hos_bio*, unsigned long long, unsigned long long, unsigned long long, unsigned int, unsigned int, int, unsigned int, unsigned int, short, s_blockmap*, s_bufman::s_paging, s_bufman::s_dirtyMode, unsigned int, s_bufmanCallerStats*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #7 0x00007f5beb43b576 in s_blockmap::Find(unsigned long long, short, int, s_bufmanCallerStats*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #8 0x00007f5bebc3a2ce in s_pageListCursor::PositionPage(unsigned long long) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #9 0x00007f5bebc3c000 in s_pageListCursor::PositionPrefetchedPage(s_pageListCursor::s_paPosition) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #10 0x00007f5beba47b11 in s_garrayReadCursorV2::ResettoNextPage() () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #11 0x00007f5bebacfa19 in hs_ohcidentity::TryUpgradeIdentity(hs_ohcIdentity_15*, hs_ohc*, hs_context*, s_openmode) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #12 0x00007f5bebad1dd6 in hs_ohc::hs_ohc(db_IndexDef*, s_openmode, hs_dp const*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #13 0x00007f5bebf3fb98 in db_IndexDef::OpenSIndexWithLock(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #14 0x00007f5bec0b460a in db_IndexDef::OpenSIndex(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #15 0x00007f5bebf3a9ec in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #16 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #17 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #18 0x00007f5beb391c04 in hos_team::StartWork(void (*)(void*, void*), void*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #19 0x00007f5beb367e21 in hos_team::Exec(hos_workIter&) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #20 0x00007f5bebf27937 in db_TableDef::Destroy(st_txncb*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #21 0x00007f5bebf16568 in db_Catalog::DropTable(UITable*, unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #22 0x00007f5bebfbe5b9 in db_droptable::Execute() () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #23 0x00007f5bebe3a8f4 in st_command::DoCmdThroughResourceGate() () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #24 0x00007f5bebfc088a in db_iqddl::DropTable(a_statement const*, UIConnection*, UITable*) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #25 0x00007f5beac41c9d in UIQDDL_DropTable () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so .... ----- Some threads are trying to destroy index and have some locks. 2 such groups with locking and waiting.
Threads (13): 581 569 565 550 529 522 517 497 489 487 474 466 438 #3 0x00007f5bebf3bf76 in db_IndexDef::CloseSIndex(s_index*, int) #4 0x00007f5bebf1912a in db_CatalogSIndexPtr::Close(int) #5 0x00007f5bebf3aa16 in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) #6 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) #7 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) #8 0x00007f5beb393594 in hos_thread::Main() #9 0x00007f5beb2fc9c8 in hos_lwtask::Start(hos_lwtask*) #10 0x00007f5e480cb1fd in IQWorkerStarter(void*) #11 0x00007f5e487d0c2d in run_task_body #12 0x00007f5e48303967 in UnixTask::pre_body(void*) #14 0x000000342e8e896d in clone Threads (2): 564 494 #3 0x00007f5beafcd430 in hos_mutex::Lock() const #4 0x00007f5beafcd48f in hos_mutex_lock::Lock() #5 0x00007f5beafcd510 in hos_mutex_lock::hos_mutex_lock(hos_mutex const*, hos_mutex_lock::LockStatus) #6 0x00007f5bec0b435b in db_IndexDef::OpenSIndex(unsigned int) #7 0x00007f5bebf3a9ec in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) #8 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) #9 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) #10 0x00007f5beb393594 in hos_thread::Main() #11 0x00007f5beb2fc9c8 in hos_lwtask::Start(hos_lwtask*) #12 0x00007f5e480cb1fd in IQWorkerStarter(void*) #13 0x00007f5e487d0c2d in run_task_body #14 0x00007f5e48303967 in UnixTask::pre_body(void*) #16 0x000000342e8e896d in clone ---- Sample thread 581 with CloseSIndex lock/wait Thread 581 (Thread 0x7f5bdc2b9700 (LWP 34422)): #0 0x000000342ec0e2e4 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x000000342ec09588 in _L_lock_854 () from /lib64/libpthread.so.0 #2 0x000000342ec09457 in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00007f5bebf3bf76 in db_IndexDef::CloseSIndex(s_index*, int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #4 0x00007f5bebf1912a in db_CatalogSIndexPtr::Close(int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #5 0x00007f5bebf3aa16 in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #6 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #7 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so ... ---- Sample thread 564 with OpenSIndex lock/wait Thread 564 (Thread 0x7f5bdba28700 (LWP 34439)): #0 0x000000342ec0e2e4 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x000000342ec09588 in _L_lock_854 () from /lib64/libpthread.so.0 #2 0x000000342ec09457 in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00007f5beafcd430 in hos_mutex::Lock() const () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #4 0x00007f5beafcd48f in hos_mutex_lock::Lock() () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #5 0x00007f5beafcd510 in hos_mutex_lock::hos_mutex_lock(hos_mutex const*, hos_mutex_lock::LockStatus) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #6 0x00007f5bec0b435b in db_IndexDef::OpenSIndex(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #7 0x00007f5bebf3a9ec in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #8 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so #9 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /sybase/IQ-16_0/bin64/../lib64/libiq16.so ...
Read more...
Environment
SAP IQ 16 SP10+
Product
SAP IQ 16.0
Keywords
Hang ; pread64 ; hos_pi_pread ; unresponsive ; hs_ohcidentity::TryUpgradeIdentity ; s_buf::ReadBufAndVerify ; drop table , KBA , BC-SYB-IQ , Sybase IQ , Bug Filed
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.