Guys,

 We have a product developed using POE as a base framework, with some other 
tool libraries as log4perl; basically is a forward proxy, composed of several 
modules, each one of them comprising a POE::Session; all of them share an 
internal queue of tasks to be performed. Each module performs several tasks on 
initialization, and if anything goes wrong, croak() is called to stop the 
service -> this is considered ok, since croak() is only called during 
initialization, when validation is being performed.

 The product is stable and works really fine, but recently I updated POE to the 
latest version, and since then we can see this message in the logs:

registering pdu failed: 263!
=== 5267 === 5 -> on_handle (from Handler/StoreRemote.pm at 87)
=== 5267 === 5 -> on_retry (from Handler/StoreRemote.pm at 141)
=== 5267 === 9 -> on_handle (from Handler/StoreRemote.pm at 87)
=== 5267 === 9 -> on_retry (from Handler/StoreRemote.pm at 141)
=== 5267 === !!! Kernel has child processes.
=== 5267 === !!! Stopped child process (PID 5373) reaped when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! Stopped child process (PID 5374) reaped when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! At least one child process is still running when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! Be sure to use sig_child() to reap child processes.
=== 5267 === !!! In extreme cases, failure to reap child processes has
=== 5267 === !!! resulted in a slow 'fork bomb' that has halted systems.
mkdir /mnt/nfs99: Permission denied at Handler/Store.pm line 147

first lines and last line above are the errors itself, but this part is new 
since the upgrading:

=== 5267 === !!! Kernel has child processes.
=== 5267 === !!! Stopped child process (PID 5373) reaped when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! Stopped child process (PID 5374) reaped when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! At least one child process is still running when 
POE::Kernel->run() is ready to return.
=== 5267 === !!! Be sure to use sig_child() to reap child processes.
=== 5267 === !!! In extreme cases, failure to reap child processes has
=== 5267 === !!! resulted in a slow 'fork bomb' that has halted systems.

I can see it everytime the service is stopped because of an unhandled 
condition, even when POE's event loop has been already running for ours. It was 
not visible before, and I can't get rid of it in any way. I've tried different 
ways to avoid it with no luck.

Any advice or alternative approach on this?

Many thanks
Alberto

Reply via email to