From: dalnet-src-bounces@lists.dal.net on behalf of Juan Baez Sent: Friday, June 26, 2009 11:13 AM To: dalnet-src@dal.net Subject: [DALnet-src] initconf never closes the ircd.conf file descriptor Attachments: fdfix.diff; ATT00016.txt I�ve been using my own modification of bahamut (solid-ircd) for a while now, and a user pointed out an issue to us, that applies to bahamut as well (1.8.6) included. The issue is that initconf never closes the ircd.conf file descriptor, so its essentially a memory leak as well. I checked out the latest bahamut via git-clone to test it out, and make the patch that�s attached on this email. IRCd started under PID 31402 linux-cx9m:/home/jason # lsof -p 31402 | grep "ircd.conf" No file descriptors are open. So I sent out a SIGHUP. linux-cx9m:/home/jason # kill -HUP 31402 linux-cx9m:/home/jason # lsof -p 31402 | grep "ircd.conf" ircd 31402 jason 7r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf Let�s send out 11 mores just for kicks. linux-cx9m:/home/jason # lsof -p 31402 | grep "ircd.conf" ircd 31402 jason 7r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 8r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 9r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 10r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 11r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 12r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 13r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 14r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 15r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 16r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 17r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf ircd 31402 jason 18r REG 8,3 4636 66269 /home/jason/ircd/ircd.conf linux-cx9m:/home/jason # ls -l /proc/31402/fd | grep "ircd.conf" | wc -l 12 This is a pretty easy fix, attach is a patch that fixes this. With the patch applied: linux-cx9m:/home/jason # kill -HUP 31761 linux-cx9m:/home/jason # kill -HUP 31761 linux-cx9m:/home/jason # kill -HUP 31761 linux-cx9m:/home/jason # lsof -p 31761 | grep "ircd.conf" No file descriptors are open. I don�t see this being a �big issue,� since flock is never called and the file is only open for reading. We�ve done quite a few rehashes ourselves and never really noticed this issue until it was pointed out. [root@vortex ~]# ls -l /proc/5047/fd | grep "ircd.conf" | wc -l 21 - Server Up 632 days, 2:30:22 End of /STATS report. - I seriously doubt that anyone will keep rehashing the ircd until the maximum number of file descriptors is reached. Can anyone else confirm this issue on their server(s)? Juan Baez