Hi Folks,

-jail-2.05b$ perl -MPOE -e 'print $POE::VERSION, "\n"'
0.29
-jail-2.05b$

I found a Filedescriptor leek ...
I wrote a FTP-bouncer, a tcprelay with some more functions (identd for example). It forwards only the controll connection, not the data connection. If I connect to the relay, and then disconnect I every time have one more line of this in lsof:

bouncer.p 14586 nick 24u sock 0,4 864749 can't identify protocol

This increases and increases, on each connect/disconnect, and then some object dies (only one of the socketfactories) with too many open files. The thing is, if I remove the following line, this doesn´t occure:

   $kernel->detach_myself();

What is false to use this to detach object from the parent object? It is needed for the reinit of the config, for not terminating the open connetions. Must I then do things myself for destroying SocketFactories?

Debuginformation:

xx1-xx-xxx-xx is IP of Server, xx2-xx-xxx-xx is IP of Targetserver and xx3-xx-xxx-xx is IP of Client. The files /beforeall, ./connected, ./disconnected, b2.cfg and the script itself are attached.

-jail-2.05b$ ./bouncer.pl b2.cfg &
[1] 15466
-jail-2.05b$ FOUND KEY:ListenIP:xx1-xx-xxx-xx_
FOUND KEY:DestinationIP:xx2-xx-xxx-xx_:
FOUND KEY:Name:BouncerCurry:
FOUND KEY:ListenPort:58122:
FOUND KEY:DestinationPort:64281:
+ Redirecting xx1-xx-xxx-xx:58122 to xx2-xx-xxx-xx:64281

-jail-2.05b$ ps -auxww|grep bouncer.pl
15466 ttyp6 00:00:00 bouncer.pl
-jail-2.05b$ ./lsof -p 15466 >./beforeall
-jail-2.05b$ [5] Accepted connection from xx3-xx-xxx-xx:4308
[5] xx1-xx-xxx-xx:47175 <-> xx3-xx-xxx-xx:4308 established.
[5] Resolving identd (ClientIP: xx3-xx-xxx-xx, ClientPort: 4308, LocalIP: xx3-xx-xxx-xx_, LocalPort: 47175, BuggyIdent: 1)
[5] Couldn't get identd: Error UKNOWN-ERROR
[5] Resolving reverse xx3-xx-xxx-xx
[5] Found reverse for xx3-xx-xxx-xx the host xx3-xx-xxx-xx.customer.m-online.net
[5] -> 'IDNT [EMAIL PROTECTED]:host-xx3-xx-xxx-xx.customer.m-online.net'

-jail-2.05b$ ./lsof -p 15466 >./connected
-jail-2.05b$ [5] Server closed connection.
[5] Closing redirection session

-jail-2.05b$ ./lsof -p 15466 >./disconnected
-jail-2.05b$ wc -l ./beforeall ./connected ./disconnected
 25 ./beforeall
 28 ./connected
 26 ./disconnected
 79 total
-jail-2.05b$

-> I´ve one more open file descriptor between beforeall and disconnect!

Thanks for hints,
Markus Mueller


Attachment: debugfiles.tgz
Description: Binary data

Reply via email to