Skip Menu |

This queue is for tickets about the POE CPAN distribution.

Report information
The Basics
Id: 2453
Status: resolved
Worked: 5 min
Priority: 0/
Queue: POE

People
Owner: RCAPUTO [...] cpan.org
Requestors: nick.williams [...] morganstanley.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.25
Fixed in: (no value)



Subject: user-defined signals can dispatch to non-existent session
When using the kernel's signal() method to send a user-defined signal, it's possible to get a signal dispatched to a session which is in the process of shutting down (i.e. about to call the _stop event). However, the garbage collection in _data_sig_free_terminated_sessions doesn't take this into account and can cause POE to die screaming with an internal inconsistency error in _data_ses_collect_garbage.
--- lib/perl5/POE/Kernel.pm Tue Apr 29 18:04:57 2003 +++ lib/perl5/POE/Kernel.pm.orig Wed Feb 5 16:22:11 2003 @@ -699,7 +699,6 @@ } else { foreach my $touched_session (@kr_signaled_sessions) { - next unless $self->_data_ses_exists($touched_session); $self->_data_ses_collect_garbage($touched_session); } }
Date: Tue, 29 Apr 2003 18:10:15 -0400
From: Rocco Caputo <troc [...] netrus.net>
To: Guest via RT <bug-POE [...] rt.cpan.org>
Subject: Re: [cpan #2453] user-defined signals can dispatch to non-existent session
RT-Send-Cc:
On Tue, Apr 29, 2003 at 01:07:20PM -0400, Guest via RT wrote: Show quoted text
> > This message about POE was sent to you by guest <> via rt.cpan.org > > Full context and any attached attachments can be found at: > <URL: https://rt.cpan.org/Ticket/Display.html?id=2453 > > > When using the kernel's signal() method to send a user-defined > signal, it's possible to get a signal dispatched to a session which > is in the process of shutting down (i.e. about to call the _stop > event). However, the garbage collection in > _data_sig_free_terminated_sessions doesn't take this into account > and can cause POE to die screaming with an internal inconsistency > error in _data_ses_collect_garbage.
Thank you. That is a beautiful description of the problem and a fine patch. I will be committing it to CVS shortly. -- Rocco Caputo - troc@pobox.com - http://poe.perl.org/