DB2 - Problem description
Problem IC75398 | Status: Closed |
USING SOURCEUSEREXIT WHEN LOADING WILL LEAK FILE DESCRIPTOR | |
product: | |
DB2 FOR LUW / DB2FORLUW / 950 - DB2 | |
Problem description: | |
When using a load with 'sourceuserexit', DB2 might end up leaking file descriptors because it 'unlink' the named pipe used to read data from the 'sourceuserexit' program without closing it first. Finally it reaches the limit for opened file descriptors and start putting follwing OS error messages in the db2diag.log. db2diag.log : ---------------------------------------------------------------- ------------------------------------- 2011-02-06-11.28.37.848709-300 I4048694A573 LEVEL: Error PID : 201224 TID : 32003 PROC : db2sysc 1 INSTANCE: xxxxxxxx NODE : 001 DB : xxxxxxxx APPHDL : 1-45212 APPID: *N1.xxxxxxxx.110206162803 AUTHID : LOADPROD EDUID : 32003 EDUNAME: db2agntp (xxxxxxxx) 1 FUNCTION: DB2 UDB, database utilities, DIAG_ERROR, probe:0 DATA #1 : String, 144 bytes LOADID: 4208.2011-02-06-11.28.06.289044.1 (70;1578) Reading db2nodes because of error , -2062614522, 0, Detected in file:sqluSocket.C, Line:615 2011-02-06-11.28.37.854981-300 E4049268A987 LEVEL: Error (OS) PID : 201224 TID : 32003 PROC : db2sysc 1 INSTANCE: xxxxxxxx NODE : 001 DB : xxxxxxxx APPHDL : 1-45212 APPID: *N1.xxxxxxxx.110206162803 AUTHID : LOADPROD EDUID : 32003 EDUNAME: db2agntp (xxxxxxxx) 1 FUNCTION: DB2 UDB, oper system services, sqloopenp, probe:80 MESSAGE : ZRC=0x850F0006=-2062614522=SQLO_FHNL "TOO MANY OPEN FILES" DIA8306C Too many files were opened. CALLED : OS, -, open OSERR : EMFILE (24) "Too many open files" DATA #1 : Codepath, 8 bytes 4:12:18:20:23:24:37 DATA #2 : File name, 33 bytes /db2home/xxxxxxxx/sqllib/db2systm DATA #3 : Bitmask, 4 bytes 0x00000354 DATA #4 : Hex integer, 4 bytes 0x000001A0 DATA #5 : signed integer, 4 bytes 0 DATA #6 : signed integer, 4 bytes 0 DATA #7 : String, 105 bytes Search for ossError*Analysis probe point after this log entry for further self-diagnosis of this problem. 2011-02-06-11.28.37.861916-300 I4050256A2203 LEVEL: Error (OS) PID : 201224 TID : 32003 PROC : db2sysc 1 INSTANCE: xxxxxxxx NODE : 001 DB : xxxxxxxx APPHDL : 1-45212 APPID: *N1.xxxxxxxx.110206162803 AUTHID : LOADPROD EDUID : 32003 EDUNAME: db2agntp (xxxxxxxx) 1 FUNCTION: DB2 Common, OSSe, ossErrorIOAnalysis, probe:100 CALLED : OS, -, open OSERR : EMFILE (24) "Too many open files" DATA #1 : String, 140 bytes A total of 3 analysis will be performed : - User info - ulimit info - Target file info Target file = /db2home/xxxxxxxx/sqllib/db2systm DATA #2 : String, 190 bytes Real user ID of current process = 46602 Effective user ID of current process = 46602 Real group ID of current process = 6548 APPHDL : 1-45212 APPID: *N1.xxxxxxxx.110206162803 AUTHID : LOADPROD EDUID : 32003 EDUNAME: db2agntp (xxxxxxxx) 1 FUNCTION: DB2 Common, OSSe, ossErrorIOAnalysis, probe:100 CALLED : OS, -, open OSERR : EMFILE (24) "Too many open files" DATA #1 : String, 140 bytes A total of 3 analysis will be performed : - User info - ulimit info - Target file info Target file = /db2home/xxxxxxxx/sqllib/db2systm DATA #2 : String, 190 bytes Real user ID of current process = 46602 Effective user ID of current process = 46602 Real group ID of current process = 6548 Effective group ID of current process = 6548 DATA #3 : String, 381 bytes Current process limits (unit in bytes except for nofiles) : mem (S/H) = unlimited / unlimited core (S/H) = 8589934590 / 8589934590 cpu (S/H) = unlimited / unlimited data (S/H) = unlimited / unlimited fsize (S/H) = unlimited / unlimited nofiles (S/H) = unlimited / unlimited stack (S/H) = unlimited / unlimited rss (S/H) = unlimited / unlimited DATA #4 : String, 260 bytes Target File Information : Size = 4096 Link = No Reference path = N/A Type = 0x8000 | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * When using a load with 'sourceuserexit', DB2 might end up * * leaking file descriptors because it 'unlink' the named pipe * * used * * to read data from the 'sourceuserexit' program without * * closing it first. * * Finally it reaches the limit for opened file descriptors and * * start putting OS error messages in the db2diag.log * * saying "TOO MANY OPEN FILES". * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 9.5 Fix Pack 9 * **************************************************************** | |
Local Fix: | |
avoid using sourceuserexit to load the data. | |
available fix packs: | |
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows | |
Solution | |
First Fixed in Version 9.5 Fix Pack 9 | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC79523 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 29.03.2011 13.03.2012 13.03.2012 |
Problem solved at the following versions (IBM BugInfos) | |
9.5.FP9 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.5.0.9 |