DB2 - Problem description
| Problem IC72123 | Status: Closed |
EMFILE error due to a file handle leak may happen and can cause DBMarkedBad error | |
| product: | |
DB2 FOR LUW / DB2FORLUW / 950 - DB2 | |
| Problem description: | |
The customer got database marked bad error because DB2 could not
drop a temporary file due to EMFILE error at a file open.
EMFILE error was caused by opening /var/db2/global.reg file.
When db2sysc attempted to access global registry file, it could
open it but got the following error. When db2 gets this error,
it does not close the opened file descriptor and a file handle
leak occurs. When this error happens repeatedly, it results in
EMFILE error.
From db2diag.log,
2010-06-30-09.00.58.626926+540 I3582A1357 LEVEL: Error
PID : 454956 TID : 6099 PROC : db2sysc
0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 3-44174 APPID: *N3.db2inst1.100707013023
AUTHID : db2inst1
EDUID : 6099 EDUNAME: db2agntp (SAMPLE) 99
FUNCTION: DB2 Common, Generic Registry, GenRegFile::OpenScan,
probe:20
MESSAGE :
ECF=0x900001BF=-1879047745=ECF_GENREG_OPEN_INPUT_FILE_FAILED
Failed to open the input registry
CALLED : OS, -, fopen
RETCODE : ECF=0x9000002D=-1879048147=ECF_FILE_PROCESS_MAX
The maximum number of file per process has already
been reached
DATA #1 : String, 19 bytes
/var/db2/global.reg
CALLSTCK:
[0] 0x0900000002FEAEFC pdOSSeLoggingCallback + 0x34
[1] 0x0900000000624424 oss_log__FP9OSSLogFacUiN32UlN26iPPc +
0x1C4
[2] 0x0900000000624810 ossLogRC + 0xD0
[3] 0x09000000010CEF6C OpenScan__10GenRegFileFv + 0x3CC
[4] 0x09000000010E928C ossOpenInstanceList__FPcPPvCb + 0x8C
[5] 0x0900000001811950 @71@EnvRegRefresh__FP12SEnvRegistry +
0x2C4
[6] 0x0900000001811578 @71@EnvRegOpen__FPP12SEnvRegistry +
0x84
[7] 0x09000000017A9160 @71@sqloPRegQueryDefaultValue__FiPcPCc
+ 0xC
[8] 0x0900000001816420 @71@EnvGetDB2SysVar__FiPcUl + 0x110
[9] 0x0900000001811118 @71@EnvQueryDB2SystemVariables__Fv +
0x80
Then, you got the following using lsof.
COMMAND PID USER FD TYPE DEVICE
SIZE/OFF NODE NAME
db2sysc 229436 db2inst1 3r VREG 10,6
0 XXX /var (/dev/hd9var)
... snip ...
db2sysc 229436 db2inst1 22r VREG 10,6
0 XXX /var (/dev/hd9var)
db2sysc 229436 db2inst1 23r VREG 10,6
0 XXX /var (/dev/hd9var)
... snip ...
db2sysc 229436 db2inst1 999r VREG 10,6
0 XXX /var (/dev/hd9var)
db2sysc 229436 db2inst1 1000r VREG 10,6
0 XXX /var (/dev/hd9var)
... snip ...
db2sysc 229436 db2inst1 *484r VREG 10,6
0 XXX /var (/dev/hd9var)
db2sysc 229436 db2inst1 *485r VREG 10,6
0 XXX /var (/dev/hd9var)
db2sysc 229436 db2inst1 *486r VREG 10,6
0 XXX /var (/dev/hd9var)
This problem also caused instance crash with the following error
in the db2diag.log.
2010-07-01-05.31.23.892274+540 I23479979A1362 LEVEL: Severe
PID : 454956 TID : 3503 PROC : db2sysc
99
INSTANCE: db2inst1 NODE : 099 DB : SAMPLE
APPHDL : 3-19801 APPID:
12.26.3.148.54848.100708075435
AUTHID : EDWETL
EDUID : 3503 EDUNAME: db2agntp (SLSIYMS) 99
FUNCTION: DB2 UDB, data management, sqldCriticalSectionEnd,
probe:9323
CALLED : DB2 UDB, data management, sqldDropTable
RETCODE : ZRC=0x85020087=-2063466361=SQLB_NO_HANDLES
"SqlbFileTbl out of file handles." | |
| Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * A File handle will leak, if GenRegFile::OpenScan , probe:20 * * is recorded in db2diag.log * * * * From db2diag.log, * * * * 2010-06-30-09.00.58.626926+540 I3582A1357 LEVEL:Error * * PID : 454956 TID : 6099 PROC * * :db2sysc 0 * * INSTANCE: db2inst1 NODE : 000 DB : SAMPLE * * APPHDL : 3-44174 * * APPID:*N3.db2inst1.100707013023 * * AUTHID : db2inst1 * * EDUID : 6099 EDUNAME: db2agntp (SLSIYMS) 99 * * FUNCTION: DB2 Common, Generic Registry, * * GenRegFile::OpenScan,probe:20 * * * * MESSAGE : * * ECF=0x900001BF=-1879047745=ECF_GENREG_OPEN_INPUT_FILE_FAILED * * * * Failed to open the input registry * * CALLED : OS, -, fopen * * RETCODE : ECF=0x9000002D=-1879048147=ECF_FILE_PROCESS_MAX * * The maximum number of file per process has already been * * reached * * DATA #1 : String, 19 bytes * * /var/db2/global.reg * * * * CALLSTCK: * * * * [0] 0x0900000002FEAEFC pdOSSeLoggingCallback + 0x34 * * [1] 0x0900000000624424 oss_log__FP9OSSLogFacUiN32UlN26iPPc * * + 0x1C4 * * [2] 0x0900000000624810 ossLogRC + 0xD0 * * [3] 0x09000000010CEF6C OpenScan__10GenRegFileFv + 0x3CC * * [4] 0x09000000010E928C ossOpenInstanceList__FPcPPvCb + 0x8C * * [5] 0x0900000001811950 @71@EnvRegRefresh__FP12SEnvRegistry * * + 0x2C4 * * [6] 0x0900000001811578 @71@EnvRegOpen__FPP12SEnvRegistry + * * 0x84 * * [7] 0x09000000017A9160@71@sqloPRegQueryDefaultValue__FiPcPCc * * + 0xC * * [8] 0x0900000001816420 @71@EnvGetDB2SysVar__FiPcUl + 0x110 * * [9] 0x0900000001811118 @71@EnvQueryDB2SystemVariables__Fv * * + 0x80 * * * * In this case, opened file descriptor was not closed. * * * * Then, you got the following using lsof. * * COMMAND PID USER FD TYPE DEVICE * * SIZE/OFF NODE NAME * * db2sysc 229436 db2inst1 3r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * ... snip ... * * db2sysc 229436 db2inst1 22r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * db2sysc 229436 db2inst1 23r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * ... snip ... * * db2sysc 229436 db2inst1 999r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * db2sysc 229436 db2inst1 1000r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * ... snip ... * * db2sysc 229436 db2inst1 *484r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * db2sysc 229436 db2inst1 *485r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * db2sysc 229436 db2inst1 *486r VREG 10,6 * * 0 XXX /var (/dev/hd9var) * * * * db2sysc was TOO MANY opened /var... files due to the * * above(open was successful, but lock file was error. * * if this case was occurred, opened file descriptor was not * * closed) * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 UDB version 9.5 fix pack 8. * **************************************************************** | |
| Local Fix: | |
| available fix packs: | |
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows | |
| Solution | |
Problem was first fixed in DB2 UDB Version 9.5 FixPack 8 | |
| Workaround | |
not known / see Local fix | |
| Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 21.10.2010 24.05.2011 24.05.2011 |
| Problem solved at the following versions (IBM BugInfos) | |
9.5., 9.5.FP8 | |
| Problem solved according to the fixlist(s) of the following version(s) | |
| 9.5.0.8 |
|