DB2 - Problem description
Problem IC70697 | Status: Closed |
ASYNCHRONOUS PARTITION DETACH (APD) MAY DEADLOCK WITH DDL OR DML STATEMENTS ACTING ON THE SAME PARTITIONED TABLE. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
As of v9.7 Fix Pack 1, detaching a partition from a data partitioned table schedules a database manager task to complete the detach process asynchronously after all remaining statements referencing the data partitioned table have completed their execution. This task may deadlock with concurrently executing DML or DDL statements being compiled which reference the data partitioned table. Entries in the db2diag.log may appear as follows: --------------------------<snip>-------------------------------- 2010-08-10-04.53.29.177231+540 I3851231A554 LEVEL: Error PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, catalog services, sqlrlCatalogScan::postUpdateCacheHandlin, probe:10 RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. 2010-08-10-04.53.29.187665+540 I3851786A538 LEVEL: Error PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, catalog services, sqlrlCatalogScan::update, probe:80 RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. 2010-08-10-04.53.29.191663+540 I3852325A542 LEVEL: Error PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, catalog services, sqlrlAlterDropCatalogChange, probe:300 RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. 2010-08-10-04.53.29.195661+540 I3852868A544 LEVEL: Error PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, catalog services, sqlrlAlterDetachCatalogChange, probe:100 RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. 2010-08-10-04.53.29.199664+540 I3853413A729 LEVEL: Error PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, AIC, apdTaskProcessor, probe:1128 MESSAGE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. DATA #1 : String, 60 bytes APD ERROR DURING PROCESSING: poolID/objectID/partitionID !!! DATA #2 : unsigned integer, 2 bytes 65530 DATA #3 : unsigned integer, 2 bytes 33002 DATA #4 : unsigned integer, 2 bytes 5 2010-08-10-04.53.29.203663+540 I3854143A1013 LEVEL: Warning PID : 442600 TID : 19379 PROC : db2sysc 0 INSTANCE: dwadm NODE : 000 DB : LMDW APPHDL : 0-11168 APPID: *N0.DB2.100809204623 AUTHID : BDUSR EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 FUNCTION: DB2 UDB, AIC, apdTaskProcessorCleanup, probe:194 MESSAGE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock detected" DIA8002C A deadlock has occurred, rolling back transaction. CALLED : DB2 UDB, AIC, apdTaskProcessor RETCODE : ZRC=0x82A90066=-2102853530=ABP_SUSPEND_TASK_PRO "Suspend the task processor" DATA #1 : String, 28 bytes Source Table Schema and Name DATA #2 : String, 8 bytes LM_DW DATA #3 : String, 13 bytes DY_STK_201008 DATA #4 : String, 12 bytes Partition ID DATA #5 : unsigned integer, 2 bytes 5 DATA #6 : String, 28 bytes Target Table Schema and Name DATA #7 : String, 8 bytes LM_DW DATA #8 : String, 19 bytes DY_STK_201008_PART5 --------------------------</snip>--------------------------- In a deadlock event, the APD process will always be chosen as the victim, and hence, rescheduled to complete its task at a later time. If the same process continually encounters deadocks, then the newly detached target table will not be accessible. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * As of v9.7 Fix Pack 1, detaching a partition from a data * * partitioned table schedules a database manager task to * * complete * * the detach process asynchronously after all remaining * * statements * * referencing the data partitioned table have completed their * * execution. * * * * This task may deadlock with concurrently executing DML or * * DDL * * statements being compiled which reference the data * * partitioned * * table. Entries in the db2diag.log may appear as follows: * * * * --------------------------<snip>------------------------------ * * * 2010-08-10-04.53.29.177231+540 I3851231A554 LEVEL: Error * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, catalog services, * * sqlrlCatalogScan::postUpdateCacheHandlin, probe:10 * * RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * * * 2010-08-10-04.53.29.187665+540 I3851786A538 LEVEL: Error * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, catalog services, * * sqlrlCatalogScan::update, * * probe:80 * * RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * * * 2010-08-10-04.53.29.191663+540 I3852325A542 LEVEL: Error * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, catalog services, * * sqlrlAlterDropCatalogChange, probe:300 * * RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * * * 2010-08-10-04.53.29.195661+540 I3852868A544 LEVEL: Error * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, catalog services, * * sqlrlAlterDetachCatalogChange, probe:100 * * RETCODE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * * * 2010-08-10-04.53.29.199664+540 I3853413A729 LEVEL: Error * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, AIC, apdTaskProcessor, probe:1128 * * MESSAGE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * DATA #1 : String, 60 bytes * * APD ERROR DURING PROCESSING: poolID/objectID/partitionID !!! * * DATA #2 : unsigned integer, 2 bytes * * 65530 * * DATA #3 : unsigned integer, 2 bytes * * 33002 * * DATA #4 : unsigned integer, 2 bytes * * 5 * * * * 2010-08-10-04.53.29.203663+540 I3854143A1013 LEVEL: Warning * * PID : 442600 TID : 19379 PROC : db2sysc * * 0 * * INSTANCE: dwadm NODE : 000 DB : LMDW * * APPHDL : 0-11168 APPID: *N0.DB2.100809204623 * * AUTHID : BDUSR * * EDUID : 19379 EDUNAME: db2taskp (LMDW) 0 * * FUNCTION: DB2 UDB, AIC, apdTaskProcessorCleanup, probe:194 * * MESSAGE : ZRC=0x80100002=-2146435070=SQLP_LDED "Dead lock * * detected" * * DIA8002C A deadlock has occurred, rolling back * * transaction. * * CALLED : DB2 UDB, AIC, apdTaskProcessor * * RETCODE : ZRC=0x82A90066=-2102853530=ABP_SUSPEND_TASK_PRO * * "Suspend the task processor" * * DATA #1 : String, 28 bytes * * Source Table Schema and Name * * DATA #2 : String, 8 bytes * * LM_DW * * DATA #3 : String, 13 bytes * * DY_STK_201008 * * DATA #4 : String, 12 bytes * * Partition ID * * DATA #5 : unsigned integer, 2 bytes * * 5 * * DATA #6 : String, 28 bytes * * Target Table Schema and Name * * DATA #7 : String, 8 bytes * * LM_DW * * DATA #8 : String, 19 bytes * * DY_STK_201008_PART5 * * * * --------------------------</snip>--------------------------- * * * * In a deadlock event, the APD process will always be chosen * * as * * the victim, and hence, rescheduled to complete its task at a * * later time. If the same process continually encounters * * deadocks, then the newly detached target table will not be * * accessible. * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 9.7 Fix Pack 4. * **************************************************************** | |
Local Fix: | |
APD processes will re-attempt to execute approximately every 5 minutes. Cease attempting to access the data partitioned table and the newly detached target table until the target has been fully detached. You can scan the SYSCAT.DATAPARTITIONS catalog view, and look for 'L' or 'I' in the STATUS column for any remaining partitions which have yet to complete their asynchronous process (ie. both asynchronous partition detach and asynchronous index cleanup if applicable). | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in Version 9.7 Fix Pack 4. | |
Workaround | |
APD processes will re-attempt to execute approximately every 5 minutes. Cease attempting to access the data partitioned table and the newly detached target table until the target has been fully detached. You can scan the SYSCAT.DATAPARTITIONS catalog view, and look for 'L' or 'I' in the STATUS column for any remaining partitions which have yet to complete their asynchronous process (ie. both asynchronous partition detach and asynchronous index cleanup if applicable). | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 23.08.2010 05.05.2011 05.05.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP4 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.4 |