Two things
1) I have been unable to reproduce the problem after removing our
backend bits. Something somewhat nonstandard that I do is I attach a
tied filehandle to a ReadWrite wheel. In the case of reading, the
FILENO method returns a filehandle opened to /dev/zero. For writing, I
give it one to /dev/null. The tied filehandle backend streams files
from mogilefs in chunks, from multiple backends, so AFAIK I'm forced to
lie about the fileno in order to use POE wheels.
2) The problem/dump without the env variables shows up only when I try
to retrieve a file. With these environment variables
export POE_ASSERT_DATA=1
export POE_CATCH_EXCEPTIONS=0
everything still functions properly under POE-1.299, but doesn't even
allow login as it barfs right away upon client connection under
POE-1.310 with
# ./ftpserver.pl
8484: Accept id: 1 IPv4 69.160.35.99:44792 at ./ftpserver.pl line 284.
=== (8492) ===
Please address any warnings or errors above this message, and try
again. If there are none, or those messages are from within POE,
then please mail them along with the following information
to bug-POE@rt.cpan.org:
---
<ev> can't enqueue event ``_sigchld_poll'' for nonexistent session
-----
at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/Events.pm line 72
POE::Kernel::_data_ev_enqueue('POE::Kernel=ARRAY(0x2f16730)',
'POE::Kernel=ARRAY(0x2f16730)', 'POE::Kernel=ARRAY(0x2f16730)',
'_sigchld_poll', 256, 'ARRAY(0x34097c0)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/Signals.pm', 549,
undef, ...) called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/Signals.pm line 547
POE::Kernel::_data_sig_enqueue_poll_event('POE::Kernel=ARRAY(0x2f16730)', 'CHLD')
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Loop/PerlSignals.pm
line 97
POE::Kernel::loop_watch_signal('POE::Kernel=ARRAY(0x2f16730)',
'CHLD') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/Signals.pm line 295
POE::Kernel::_data_sig_signal_watch('POE::Kernel=ARRAY(0x2f16730)', 2,
'CHLD') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/Signals.pm line 284
POE::Kernel::_data_sig_add('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x3408bb0)', 'CHLD', 'CHLD', 'ARRAY(0x340a958)')
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 697
POE::Kernel::sig('POE::Kernel=ARRAY(0x2f16730)', 'CHLD', 'CHLD')
called at ./ftpserver.pl line 314
main::__ANON__(undef, 'POE::Session=ARRAY(0x3408bb0)',
'POE::Kernel=ARRAY(0x2f16730)', 'HASH(0x3408b20)', 'request',
'POE::Session=ARRAY(0x290a038)', undef,
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 700, ...)
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Session.pm line 464
POE::Session::_invoke_state('POE::Session=ARRAY(0x3408bb0)',
'POE::Session=ARRAY(0x290a038)', 'request', 'ARRAY(0x340c808)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 700,
'update_status') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1028
eval {...} called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1014
POE::Kernel::_dispatch_event('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x3408bb0)', 'POE::Session=ARRAY(0x3408bb0)',
'request', 2, 'ARRAY(0x340c808)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 700,
'request', ...) called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1714
POE::Kernel::call('POE::Kernel=ARRAY(0x2f16730)', 2, 'request',
'POE::Kernel=ARRAY(0x2f16730)', 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 700
POE::Component::Daemon::expedite_signal('POE::Component::Daemon=HASH(0x33fc9d0)',
'daemon_child', 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 712
POE::Component::Daemon::inform_others('POE::Component::Daemon=HASH(0x33fc9d0)',
'daemon_child', 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 644
POE::Component::Daemon::become_child('POE::Component::Daemon=HASH(0x33fc9d0)',
0, 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 578
POE::Component::Daemon::fork('POE::Component::Daemon=HASH(0x33fc9d0)',
'POE::Session=ARRAY(0x290a038)', 'POE::Kernel=ARRAY(0x2f16730)',
'HASH(0x33fd9b0)', 'fork', 'POE::Session=ARRAY(0x290a038)', undef,
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 849, ...)
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Session.pm line 483
POE::Session::_invoke_state('POE::Session=ARRAY(0x290a038)',
'POE::Session=ARRAY(0x290a038)', 'fork', 'ARRAY(0x340bf28)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 849,
'request') called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm
line 1707
POE::Kernel::call('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x290a038)', 'fork', 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 849
POE::Component::Daemon::fork_off('POE::Component::Daemon=HASH(0x33fc9d0)',
'ARRAY(0x340bbc8)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 1044
POE::Component::Daemon::update_status_fork_parent('POE::Component::Daemon=HASH(0x33fc9d0)',
'req', 'HASH(0x3408790)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm line 948
POE::Component::Daemon::update_status('POE::Component::Daemon=HASH(0x33fc9d0)',
'POE::Session=ARRAY(0x290a038)', 'POE::Kernel=ARRAY(0x2f16730)',
'HASH(0x33fd9b0)', 'update_status', 'POE::Session=ARRAY(0x3408bb0)',
undef, '/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm',
1099, ...) called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Session.pm
line 483
POE::Session::_invoke_state('POE::Session=ARRAY(0x290a038)',
'POE::Session=ARRAY(0x3408bb0)', 'update_status', 'ARRAY(0x3409d48)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 1099,
'POE::Wheel::ListenAccept(1) -> select read') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1028
eval {...} called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1014
POE::Kernel::_dispatch_event('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x290a038)', 'POE::Session=ARRAY(0x3408bb0)',
'update_status', 2, 'ARRAY(0x3409d48)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm', 1099,
'request', ...) called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1714
POE::Kernel::call('POE::Kernel=ARRAY(0x2f16730)',
'POE-Component-Daemon', 'update_status', 'req', 'HASH(0x3408790)')
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Component/Daemon.pm
line 1099
Daemon::update_status('Daemon', 'req', 'HASH(0x3408790)') called
at ./ftpserver.pl line 288
main::__ANON__(undef, 'POE::Session=ARRAY(0x3408bb0)',
'POE::Kernel=ARRAY(0x2f16730)', 'HASH(0x3408b20)', 'accept',
'POE::Session=ARRAY(0x3408bb0)', undef,
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Wheel/ListenAccept.pm', 100,
...) called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Session.pm line 464
POE::Session::_invoke_state('POE::Session=ARRAY(0x3408bb0)',
'POE::Session=ARRAY(0x3408bb0)', 'accept', 'ARRAY(0x2f9ed88)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Wheel/ListenAccept.pm', 100,
'request') called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm
line 1707
POE::Kernel::call('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x3408bb0)', 'accept', 'GLOB(0x34071c8)',
'\x{2}\x{0}\x{ae}\x{f8}E\x{a0}#c\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}',
1) called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Wheel/ListenAccept.pm line 100
POE::Wheel::ListenAccept::__ANON__(undef,
'POE::Session=ARRAY(0x3408bb0)', 'POE::Kernel=ARRAY(0x2f16730)',
'HASH(0x3408b20)', 'POE::Wheel::ListenAccept(1) -> select read',
'POE::Session=ARRAY(0x3408bb0)', undef,
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/FileHandles.pm', 240,
...) called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Session.pm line 464
POE::Session::_invoke_state('POE::Session=ARRAY(0x3408bb0)',
'POE::Session=ARRAY(0x3408bb0)', 'POE::Wheel::ListenAccept(1) -> select
read', 'ARRAY(0x3406ef8)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/FileHandles.pm', 240,
undef) called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1036
eval {...} called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1035
POE::Kernel::_dispatch_event('POE::Kernel=ARRAY(0x2f16730)',
'POE::Session=ARRAY(0x3408bb0)', 'POE::Session=ARRAY(0x3408bb0)',
'POE::Wheel::ListenAccept(1) -> select read', 1024, 'ARRAY(0x3406ef8)',
'/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/FileHandles.pm', 240,
undef, ...) called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Resource/FileHandles.pm line 238
POE::Kernel::_data_handle_enqueue_ready(undef, undef, 3) called
at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Loop/Select.pm line 285
POE::Kernel::loop_do_timeslice('POE::Kernel=ARRAY(0x2f16730)')
called at /usr/lib64/perl5/vendor_perl/5.12.3/POE/Loop/Select.pm line 314
POE::Kernel::loop_run('POE::Kernel=ARRAY(0x2f16730)') called at
/usr/lib64/perl5/vendor_perl/5.12.3/POE/Kernel.pm line 1210
POE::Kernel::run('POE::Kernel=ARRAY(0x2f16730)') called at
./ftpserver.pl line 612