Skip Menu |

This queue is for tickets about the POE CPAN distribution.

Report information
The Basics
Id: 53682
Status: rejected
Priority: 0/
Queue: POE

People
Owner: Nobody in particular
Requestors: stro [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in:
  • 1.282
  • 1.283
Fixed in: (no value)



Subject: test suite hangs in t\90_regression\broeren-win32-nbio.t
Hello Rocco, POE 1.282 and 1.283 both hang during t\90_regression\broeren-win32-nbio.t after printing 1..2 ok 1 - we have a subprocess I've tested this on WinXP using ActivePerl 5.10 build 1005 and MinGW-compiled Perl 5.11.3 Let me know if I can provide more useful information to find out a source of problem. -- Serguei Trouchelle
Hello, Serguei. Thanks for the bug report. It sounds like a platform-specific issue with MinGW. POE's tested on Windows XP Pro, using ActiveState and Strawberry Perl. The first order of business is to find out what's wrong. The test should produce more output when run stand-alone. Could you try running "perl -Ilib t\90_regression\broeren-win32-nbio.t" and attaching any extra output to this ticket? Is the child process receiving input? I would log $buffer to a file inside the while (sysread(...)) loop beginning at line 63. Does the test process use suspiciously large amounts of CPU time? Maybe it's stuck in that while (sysread(...)) loop. The child process may be crashing for some reason. I can extend the test to diag() any STDERR output from the child process. This could be an interactive process. When you have time, we should get together in IRC (irc.perl.org #poe) or some other medium with a quicker turn-around time. Thanks again! On Thu Jan 14 08:36:31 2010, STRO wrote: Show quoted text
> Hello Rocco, > > POE 1.282 and 1.283 both hang during > t\90_regression\broeren-win32-nbio.t after printing > > 1..2 > ok 1 - we have a subprocess > > > I've tested this on WinXP using ActivePerl 5.10 build 1005 and > MinGW-compiled Perl 5.11.3 > > Let me know if I can provide more useful information to find out a > source of problem.
Thank you for the test case. It was extremely helpful in debugging this. The problem turned out to be: Index: lib/POE/NFA.pm =================================================================== --- lib/POE/NFA.pm (revision 2792) +++ lib/POE/NFA.pm (working copy) @@ -207,10 +207,7 @@ exists $params{+SPAWN_PACKAGES} ); - my $states = delete $params{+SPAWN_INLINES} if ( - exists $params{+SPAWN_INLINES} - ); - $states ||= {}; + my $states = delete($params{+SPAWN_INLINES}) || {}; if (exists $params{+SPAWN_OBJECTS}) { my $objects = delete $params{+SPAWN_OBJECTS}; ... I committed a fix in revision 2803. The next POE release (this weekend, I hope) will include it.
Sorry, Serguei. I resolved the wrong ticket.
I cannot reproduce this problem: C:\Rocco\poe\poe>perl -v This is perl, v5.10.1 built for MSWin32-x86-multi-thread (with 2 registered patches, see perl -V for more detail) Copyright 1987-2009, Larry Wall Binary build 1006 [291086] provided by ActiveState http://www.ActiveState.com Built Aug 24 2009 13:48:26 Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. C:\Rocco\poe\poe>perl t\90_regression\broeren-win32-nbio.t 1..2 ok 1 - we have a subprocess # next [3] # received data from subprocess: [child [-728] read: Can you hear me 3] # next [2] # received data from subprocess: [child [-728] read: Can you hear me 2] # next [1] # Trying to kill [-728] # received data from subprocess: [child [-728] read: Can you hear me 1] ok 2 - child has exited when the counter ran out C:\Rocco\poe\poe>