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