DB2 - Problem description
Problem IC62934 | Status: Closed |
DEADLATCH (HANG) OCCURS WHEN XML OLIC AND CONCURRENT IUD ARE IN PROGRESS. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
Currently, if an Online Index Create ( OLIC ) statement for an XML values index is in progress, a concurrent Insert Update or Delete operation can deadlatch with the create index operation (OLIC) in certain scenarios.The deadlatch is timing related but basically can occur if the OLIC is rolling back/completing and the IUD is in progress at the same time. The stacks and latch details of such a deadlatch would look like the samples shown below. Latch details: 2506920.10841.001.stack.txt is holding SQLO_LT_SQLI_IDXCB__idxcbExist and 2506920.51014.001.stack.txt is waiting for it. 2506920.51014.001.stack.txt is holding SQLO_LT_SQLD_TCB__tcbIndexLatch and 2506920.10841.001 is waitingfor it stacks 2506920.10841.001.stack.txt 0x09000000000D6FD8 thread_wait + 0x98 0x0900000045C3CADC timeoutWait__13sqlo_waitlistFCiCP12sqloSpinLock + 0x13C 0x0900000045C3D05C wait__13sqlo_waitlistFCP12sqloSpinLock + 0xBC0x0900000045C3D25C semaphoreWait__13sqlo_waitlistFCP12sqloSpinLock + 0x1C 0x0900000045C3E5AC getConflictComplex__17SQLO_SLATCH_CAS64FCUl+0x7EC 0x0900000045C3EE44 getConflict__17SQLO_SLATCH_CAS64FCUl + 0x184 0x090000004A2A3AD0 get__13sqlo_latch_nsFCUlCPCcT1P16SQLO_LATCH_TABLECbC14SQLO_LT_VA LUES + 0x130 0x090000004A2A3C14 sqloltch_ns_notrack__FCP13sqlo_latch_nsUlCPCcCUlP16SQLO_LATCH_TA BLECbC14SQLO_LT_VALUES + 0x54 0x090000004A2A3D14 sqloltch_ns_track__FCP13sqlo_latch_nsCUlCPCcT2P16SQLO_LATCH_TABL ECbC14SQLO_LT_VALUES + 0x74 0x090000004A2A4190 xmlsProcessValuesKeyBufferForShadow__FP8sqeAgent8SQLZ_RIDP8SQLD_ TCB + 0x1D0 0x090000004798F9DC sqldUpdateRowComplex__FP13SQLD_DFM_WORKP15SQLD_XOR_UPDATEPUci + 0x89C 0x0900000047990530 sqldUpdateRow__FP13SQLD_DFM_WORKP15SQLD_XOR_UPDATEPUci + 0x510 0x090000004A574A70 sqldRowUpdate__FP8sqeAgentP8SQLD_CCBUlPP10SQLD_VALUET3 + 0xE70 0x090000004B9F72FC sqlriupd__FP8sqlrr_cb + 0x7BC 2506920.51014.001.stack.txt 0x09000000000D6FD8 thread_wait + 0x98 0x0900000045C3CADC timeoutWait__13sqlo_waitlistFCiCP12sqloSpinLock + 0x13C 0x0900000045C3D05C wait__13sqlo_waitlistFCP12sqloSpinLock + 0xBC0x0900000045C3D25C semaphoreWait__13sqlo_waitlistFCP12sqloSpinLock + 0x1C 0x0900000045C3E5AC getConflictComplex__17SQLO_SLATCH_CAS64FCUl+0x7EC 0x0900000045C3EE44 getConflict__17SQLO_SLATCH_CAS64FCUl + 0x184 0x09000000487A8970 get__13sqlo_latch_nsFCUlCPCcT1P16SQLO_LATCH_TABLECbC14SQLO_LT_VA LUES + 0x130 0x09000000487A8AB4 sqloltch_ns_notrack__FCP13sqlo_latch_nsUlCPCcCUlP16SQLO_LATCH_TA BLECbC14SQLO_LT_VALUES + 0x54 0x09000000487A8BB4 sqloltch_ns_track__FCP13sqlo_latch_nsCUlCPCcT2P16SQLO_LATCH_TABL ECbC14SQLO_LT_VALUES + 0x74 0x09000000487AB9F4 sqldFreeIXCB__FP13SQLO_MEM_POOLP9SQLD_IXCB + 0x114 0x09000000487AC380 sqldCleanupCreateINX__FP8sqeAgentP8SQLD_TCBiP17SQLD_CREATEINX_CB Ul + 0x240 0x09000000487B063C sqldEndIndexCreate__FP8sqeAgentP17SQLD_CREATEINX_CBi + 0x125C 0x0900000047497938 sqlrlCreateIndexPart__FP8sqlrr_cbP8sqlrg_idP17SQLD_CREATEINX_CBi + 0x278 0x090000004749975C sqlrlCreateLocalIndex__FP8sqlrr_cbP8sqlrg_pdP14sqlrg_partkeydP8s qlrg_idP18sqlrg_datapartinfoP17SQLD_CREATEINX_CBibT8 + 0x5BC 0x0900000047913ED8 sqlrlCreateLocalIndexForRPC__FP8sqlrr_cbP16sqlkdRqstRplyFmtP13SQ LR_RPC_DCIXP17SQLD_CREATEINX_CBP18sqlrg_datapartinfoP8sqlrg_pd + 0x598 0x09000000479154AC sqlrlCreateIndexReceive__FP8sqlrr_cbP16sqlkdRqstRplyFmtP13SQLR_R PC_DCIXP15SQLR_RPCMESSAGE + 0x12CC | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Users of DB2 LUW on v97 and any supported hardware can hit * * the problem. * **************************************************************** * PROBLEM DESCRIPTION: * * Currently, if an Online Index Create ( OLIC ) statement for * * an * * XML values index is in progress, a * * * * concurrent Insert Update or Delete operation can deadlatch * * with * * the create index operation (OLIC) in certain * * * * scenarios.The deadlatch is timing related but basically can * * * * occur if the OLIC is rolling back/completing and the IUD is * * in * * progress at the same time. The stacks and latch details of * * * * such a deadlatch would look like the samples shown below. * * * * * * * * Latch details: * * * * 2506920.10841.001.stack.txt is holding * * * * SQLO_LT_SQLI_IDXCB__idxcbExist and * * * * 2506920.51014.001.stack.txt is waiting for it. * * * * 2506920.51014.001.stack.txt is * * * * holding SQLO_LT_SQLD_TCB__tcbIndexLatch * * * * and 2506920.10841.001 is waitingfor it * * * * * * * * stacks * * * * 2506920.10841.001.stack.txt * * * * 0x09000000000D6FD8 thread_wait + * * * * 0x98 0x0900000045C3CADC * * * * * * * * timeoutWait__13sqlo_waitlistFCiCP12sqloSpinLock + 0x13C * * * * 0x0900000045C3D05C wait__13sqlo_waitlistFCP12sqloSpinLock + * * * * 0xBC0x0900000045C3D25C * * * * semaphoreWait__13sqlo_waitlistFCP12sqloSpinLock + 0x1C * * * * 0x0900000045C3E5AC * * * * getConflictComplex__17SQLO_SLATCH_CAS64FCUl+0x7EC * * * * 0x0900000045C3EE44 * * * * getConflict__17SQLO_SLATCH_CAS64FCUl + 0x184 * * 0x090000004A2A3AD0 * * * * * * get__13sqlo_latch_nsFCUlCPCcT1P16SQLO_LATCH_TABLECbC14SQLO_LT_ * LUES * * * * + 0x130 * * * * 0x090000004A2A3C14 * * * * sqloltch_ns_notrack__FCP13sqlo_latch_nsUlCPCcCUlP16SQLO_LATCH_ * BLECbC14SQLO_LT_VALUES * * * * + 0x54 * * * * 0x090000004A2A3D14 * * * * sqloltch_ns_track__FCP13sqlo_latch_nsCUlCPCcT2P16SQLO_LATCH_TA * ECbC14SQLO_LT_VALUES * * * * + 0x74 * * * * 0x090000004A2A4190 * * * * xmlsProcessValuesKeyBufferForShadow__FP8sqeAgent8SQLZ_RIDP8SQL * TCB * * * * + 0x1D0 * * * * 0x090000004798F9DC * * * * sqldUpdateRowComplex__FP13SQLD_DFM_WORKP15SQLD_XOR_UPDATEPUci * + * * 0x89C * * * * 0x0900000047990530 * * * * sqldUpdateRow__FP13SQLD_DFM_WORKP15SQLD_XOR_UPDATEPUci + * * 0x510 * * 0x090000004A574A70 * * * * sqldRowUpdate__FP8sqeAgentP8SQLD_CCBUlPP10SQLD_VALUET3 + * * 0xE70 * * 0x090000004B9F72FC sqlriupd__FP8sqlrr_cb + 0x7BC * * * * * * * * 2506920.51014.001.stack.txt * * * * 0x09000000000D6FD8 thread_wait + 0x98 * * * * 0x0900000045C3CADC * * * * timeoutWait__13sqlo_waitlistFCiCP12sqloSpinLock + 0x13C * * * * 0x0900000045C3D05C wait__13sqlo_waitlistFCP12sqloSpinLock + * * * * 0xBC0x0900000045C3D25C * * * * semaphoreWait__13sqlo_waitlistFCP12sqloSpinLock + 0x1C * * * * 0x0900000045C3E5AC * * * * getConflictComplex__17SQLO_SLATCH_CAS64FCUl+0x7EC * * * * 0x0900000045C3EE44 * * * * getConflict__17SQLO_SLATCH_CAS64FCUl + 0x184 * * 0x09000000487A8970 * * * * * * get__13sqlo_latch_nsFCUlCPCcT1P16SQLO_LATCH_TABLECbC14SQLO_LT_ * LUES * * * * + 0x130 * * * * 0x09000000487A8AB4 * * * * sqloltch_ns_notrack__FCP13sqlo_latch_nsUlCPCcCUlP16SQLO_LATCH_ * BLECbC14SQLO_LT_VALUES * * * * + 0x54 * * * * 0x09000000487A8BB4 * * * * sqloltch_ns_track__FCP13sqlo_latch_nsCUlCPCcT2P16SQLO_LATCH_TA * ECbC14SQLO_LT_VALUES * * * * + 0x74 * * * * 0x09000000487AB9F4 * * sqldFreeIXCB__FP13SQLO_MEM_POOLP9SQLD_IXCB + * * 0x114 * * * * 0x09000000487AC380 * * * * sqldCleanupCreateINX__FP8sqeAgentP8SQLD_TCBiP17SQLD_CREATEINX_ * Ul * * * * + 0x240 * * * * 0x09000000487B063C * * * * sqldEndIndexCreate__FP8sqeAgentP17SQLD_CREATEINX_CBi + * * 0x125C * * 0x0900000047497938 * * * * sqlrlCreateIndexPart__FP8sqlrr_cbP8sqlrg_idP17SQLD_CREATEINX_C * + 0x278 * * * * 0x090000004749975C * * * * sqlrlCreateLocalIndex__FP8sqlrr_cbP8sqlrg_pdP14sqlrg_partkeydP * qlrg_idP18sqlrg_datapartinfoP17SQLD_CREATEINX_CBibT8 * * * * + 0x5BC * * * * 0x0900000047913ED8 * * * * sqlrlCreateLocalIndexForRPC__FP8sqlrr_cbP16sqlkdRqstRplyFmtP13 * LR_RPC_DCIXP17SQLD_CREATEINX_CBP18sqlrg_datapartinfoP8sqlrg_pd * * * + 0x598 * * * * 0x09000000479154AC * * * * sqlrlCreateIndexReceive__FP8sqlrr_cbP16sqlkdRqstRplyFmtP13SQLR * PC_DCIXP15SQLR_RPCMESSAGE * * * * + 0x12CC * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 LUW v97fp1. * **************************************************************** | |
Local Fix: | |
If index can be created offline, the deadlatch will not occur. Basically, the concurrency causes the deadlatch so making the index create and the IUD non-concurrent will avoid the problem. | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Solution | |
Deadlatch is fixed in v97fp1. On the new fixpack, users should not hit the problem. The OLIC and UID should be able to run concurrently and complete. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 01.09.2009 27.01.2010 27.01.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP1 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.1 |