DB2 - Problem description
Problem IC92146 | Status: Closed |
MULTIPLE DETACH PARTITION FROM THE SAME UNIT OF WORK WILL DEADLOCK WITH EACH OTHER | |
product: | |
DB2 FOR LUW / DB2FORLUW / A10 - DB2 | |
Problem description: | |
When performing a multiple detach partition on a partitioned table, in the same unit of work, the Asynchronous Partition Detach (APD) processes with each other. The APD function locks the row in SYSIBM.SYSTABLES for the partitioned table with an NS lock. Later, the process will need to lock this row in X-clusive mode to update the packed descriptor. This is will cause a deadlock between the two APD tasks. Here is the stack for when DB2 acquires the X-lock on the row in SYSIBM.SYSTABLES: sqlrlLockSystablesRow sqlrlSysPartitionsAdjustSeqno sqlrlSysPartitionsDelete sqlrlAlterDropCatalogChange sqlrlAlterDetachCatalogChange sqlrlAlterPartCatalog sqlrlPhysicalDetach apdTaskProcessor | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All users * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 version 10.1.0.3. * **************************************************************** | |
Local Fix: | |
If you hit this problem and are concerned that you cannot reclaim the space by dropping or archiving the detached partition there are two workarounds available each with their own pros and cons. Workaround 1: Pros: No need to recycle the instance if LockTimeout is already set to -1. Cons: Need to export the data from the table and recreate it. Workaround: - Set LockTimeout to -1 using the UPDATE DATABASE CONFIGURATION command. - Recycle the instance using db2stop and db2start. - Drop the partitioned table. Workaround 2: Pros: No need to recreate the table. Cons: - Need to recycle the instance - Time required for the system to resolve itself using this method may vary based on timing and the number system jobs to complete. Workaround: - Set LockTimeout to -1 using the UPDATE DATABASE CONFIGURATION command. - Set DLChkTime to 1000 (i.e. 1000 ms or 1 s) using UPDATE DATABASE CONFIGURATION and set DB2_ABP_SUSPEND_DELAY to 3 (i.e. 3 seconds) using db2set. - Recycle the instance using db2stop and db2start. - Connect to the database and wait for the system to resolve itself. Monitor SysCat.DataPartitions until there are no partitions left with STATUS='L'. | |
available fix packs: | |
DB2 Version 10.1 Fix Pack 3 for Linux, UNIX, and Windows | |
Solution | |
The problem is first fixed in DB2 version 10.1.0.3. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 07.05.2013 01.10.2013 19.06.2014 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) | |
10.1.0.3 | |
10.1.0.3 |