DB2 - Problem description
Problem IC65426 | Status: Closed |
PANIC IN SQLBCLNRASYNCWRITESETUP WHEN PAGE CLEANER TRIES TO CLOSE A CONTAINER FILE IN SQLOCLOSE, WHICH IS ALREADY CLOSED | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
Instance panic in sqlbClnrAsyncWriteSetup when page cleaner tries to close a container file it is working with in sqloclose. A race condition occurs after dropping a container through ALTER TABLESPACE command, when multiple page cleaners are trying to refresh the cached open file handles for the altered tablespace. Please note that this problem only occurs if registry variable DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN is set to YES. The following entry is found in the db2diag.log: FUNCTION: DB2 UDB, oper system services, sqloclose, probe:20 MESSAGE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found." DIA8411C A file "" could not be found. CALLED : OS, -, close OSERR : EBADF (9) "Bad file number" DATA #1 : File handle, PD_TYPE_SQO_FILE_HDL, 8 bytes 0x070000000ABFDA70 : 0000 00A7 0000 0308 ........ DATA #2 : String, 105 bytes Search for ossError*Analysis probe point after this log entry for further self-diagnosis of this problem. The stack of the page cleaner has the following entries: sqlb_panic + 0x74 sqlbClnrAsyncWriteSetup + 0x134 sqloDispatchNBlocks + 0x100 sqloLioReadWriteNBlocks + 0x1C sqlbClnrWriteSerializedPages + 0x46C sqlbClnrWritePages + 0x248 sqlbClnrEntryPoint - 0x288 sqlbClnrEntryPoint + 0x24C sqloEDUEntry + 0x274 The container file that this page cleaner is trying to close is already closed by another page cleaner and hence this page cleaner is getting SQLO_FNEX. This leads to the instance panic. | |
Problem Summary: | |
Instance panic in sqlbClnrAsyncWriteSetup when page cleaner tries to close a container file it is working with in sqloclose. A race condition occurs after dropping a container through ALTER TABLESPACE command, when multiple page cleaners are trying to refresh the cached open file handles for the altered tablespace. Please note that this problem only occurs if registry variable DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN is set to YES. The following entry is found in the db2diag.log: FUNCTION: DB2 UDB, oper system services, sqloclose, probe:20 MESSAGE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found." DIA8411C A file "" could not be found. CALLED : OS, -, close OSERR : EBADF (9) "Bad file number" DATA #1 : File handle, PD_TYPE_SQO_FILE_HDL, 8 bytes 0x070000000ABFDA70 : 0000 00A7 0000 0308 ........ DATA #2 : String, 105 bytes Search for ossError*Analysis probe point after this log entry for further self-diagnosis of this problem. The stack of the page cleaner has the following entries: sqlb_panic + 0x74 sqlbClnrAsyncWriteSetup + 0x134 sqloDispatchNBlocks + 0x100 sqloLioReadWriteNBlocks + 0x1C sqlbClnrWriteSerializedPages + 0x46C sqlbClnrWritePages + 0x248 sqlbClnrEntryPoint - 0x288 sqlbClnrEntryPoint + 0x24C sqloEDUEntry + 0x274 The container file that this page cleaner is trying to close is already closed by another page cleaner and hence this page cleaner is getting SQLO_FNEX. This leads to the instance panic. | |
Local Fix: | |
If you have set the db2 registry variable DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN=YES unset this variable (by default it is NO). | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows | |
Solution | |
Defect => wsdbu00608915 Fixed in => V9.7 + FP2 Module => ENGN_SQB | |
Workaround | |
If you have set the db2 registry variable DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN=YES unset this variable (by default it is NO). | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 06.01.2010 10.06.2010 10.06.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.7. | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.2 |