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 |
|