2247070 - Dropping table after upgrade from 15.4 may hang IQ server | SAP Knowledge Base Article

SAP Knowledge Base Article - Preview

2247070 - Dropping table after upgrade from 15.4 may hang IQ server

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 /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#7  0x00007f5beb43b576 in s_blockmap::Find(unsigned long long, short, int, s_bufmanCallerStats*) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#8  0x00007f5bebc3a2ce in s_pageListCursor::PositionPage(unsigned long long) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#9  0x00007f5bebc3c000 in s_pageListCursor::PositionPrefetchedPage(s_pageListCursor::s_paPosition) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#10 0x00007f5beba47b11 in s_garrayReadCursorV2::ResettoNextPage() () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#11 0x00007f5bebacfa19 in hs_ohcidentity::TryUpgradeIdentity(hs_ohcIdentity_15*, hs_ohc*, hs_context*, s_openmode) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#12 0x00007f5bebad1dd6 in hs_ohc::hs_ohc(db_IndexDef*, s_openmode, hs_dp const*) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#13 0x00007f5bebf3fb98 in db_IndexDef::OpenSIndexWithLock(unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#14 0x00007f5bec0b460a in db_IndexDef::OpenSIndex(unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#15 0x00007f5bebf3a9ec in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#16 0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#17 0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#18 0x00007f5beb391c04 in hos_team::StartWork(void (*)(void*, void*), void*) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#19 0x00007f5beb367e21 in hos_team::Exec(hos_workIter&) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#20 0x00007f5bebf27937 in db_TableDef::Destroy(st_txncb*) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#21 0x00007f5bebf16568 in db_Catalog::DropTable(UITable*, unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#22 0x00007f5bebfbe5b9 in db_droptable::Execute() () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#23 0x00007f5bebe3a8f4 in st_command::DoCmdThroughResourceGate() () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#24 0x00007f5bebfc088a in db_iqddl::DropTable(a_statement const*, UIConnection*, UITable*) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#25 0x00007f5beac41c9d in UIQDDL_DropTable () from /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#4  0x00007f5bebf1912a in db_CatalogSIndexPtr::Close(int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#5  0x00007f5bebf3aa16 in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#6  0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#7  0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /home/sybiq/iq160sp10pl03/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 /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#4  0x00007f5beafcd48f in hos_mutex_lock::Lock() () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#5  0x00007f5beafcd510 in hos_mutex_lock::hos_mutex_lock(hos_mutex const*, hos_mutex_lock::LockStatus) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#6  0x00007f5bec0b435b in db_IndexDef::OpenSIndex(unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#7  0x00007f5bebf3a9ec in db_IndexDef::DestroyIndex(st_txncb*, int, int, int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#8  0x00007f5bebf3517b in db_destroyTableIter::ExecWork(int&, unsigned int) () from /home/sybiq/iq160sp10pl03/IQ-16_0/bin64/../lib64/libiq16.so
#9  0x00007f5beb36cc6a in workAllocator::DoWork(unsigned int) () from /home/sybiq/iq160sp10pl03/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 ONE Support launchpad (Login required).

Search for additional results

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