Skip Menu |

This queue is for tickets about the IPC-Run CPAN distribution.

Report information
The Basics
Id: 101093
Status: resolved
Priority: 0/
Queue: IPC-Run

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

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



Subject: t/timeout.t is SIGBREAK on Strawberry Perl
Seems timeout is the source of the SIGBREAKs now. https://raw.githubusercontent.com/toddr/IPC-Run/master/t/timeout.t D:\>perl timeout.t 1..26 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) D:\>cpanm IPC::Run --verbose cpanm (App::cpanminus) 1.7001 on perl 5.018002 built for MSWin32-x64-multi-thread You have make C:\strawberry\c\bin\dmake.exe You have LWP 6.08 You have "C:\Program Files (x86)\Git\bin\tar.exe", "C:\Program Files (x86)\Git\bin \gzip.exe" and "C:\Program Files (x86)\Git\bin\bzip2.exe" You have "C:\Program Files (x86)\Git\bin\unzip.exe" Searching IPC::Run on cpanmetadb ... --> Working on IPC::Run Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-0.94.tar.gz ... OK Unpacking IPC-Run-0.94.tar.gz IPC-Run-0.94/ IPC-Run-0.94/abuse/ IPC-Run-0.94/Changes IPC-Run-0.94/eg/ IPC-Run-0.94/lib/ IPC-Run-0.94/LICENSE IPC-Run-0.94/Makefile.PL IPC-Run-0.94/MANIFEST IPC-Run-0.94/META.json IPC-Run-0.94/META.yml IPC-Run-0.94/README IPC-Run-0.94/t/ IPC-Run-0.94/TODO IPC-Run-0.94/t/97_meta.t IPC-Run-0.94/t/98_pod.t IPC-Run-0.94/t/98_pod_coverage.t IPC-Run-0.94/t/99_perl_minimum_version.t IPC-Run-0.94/t/adopt.t IPC-Run-0.94/t/binmode.t IPC-Run-0.94/t/bogus.t IPC-Run-0.94/t/filter.t IPC-Run-0.94/t/harness.t IPC-Run-0.94/t/io.t IPC-Run-0.94/t/kill_kill.t IPC-Run-0.94/t/lib/ IPC-Run-0.94/t/parallel.t IPC-Run-0.94/t/pty.t IPC-Run-0.94/t/pump.t IPC-Run-0.94/t/run.t IPC-Run-0.94/t/signal.t IPC-Run-0.94/t/timeout.t IPC-Run-0.94/t/timer.t IPC-Run-0.94/t/win32_compile.t IPC-Run-0.94/t/windows_search_path.t IPC-Run-0.94/t/lib/Test.pm IPC-Run-0.94/lib/IPC/ IPC-Run-0.94/lib/IPC/Run/ IPC-Run-0.94/lib/IPC/Run.pm IPC-Run-0.94/lib/IPC/Run/Debug.pm IPC-Run-0.94/lib/IPC/Run/IO.pm IPC-Run-0.94/lib/IPC/Run/Timer.pm IPC-Run-0.94/lib/IPC/Run/Win32Helper.pm IPC-Run-0.94/lib/IPC/Run/Win32IO.pm IPC-Run-0.94/lib/IPC/Run/Win32Pump.pm IPC-Run-0.94/eg/factorial IPC-Run-0.94/eg/factorial_pipe IPC-Run-0.94/eg/factorial_scalar IPC-Run-0.94/eg/run_daemon IPC-Run-0.94/eg/runsh IPC-Run-0.94/eg/runsu IPC-Run-0.94/eg/synopsis_scripting IPC-Run-0.94/abuse/blocking_debug_with_sub_coprocess IPC-Run-0.94/abuse/blocking_writes IPC-Run-0.94/abuse/broken_pipe_on_bad_executable_name IPC-Run-0.94/abuse/timers Entering IPC-Run-0.94 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.04) Running Makefile.PL Configuring IPC-Run-0.94 ... Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for IPC::Run Writing MYMETA.yml and MYMETA.json OK Checking dependencies from MYMETA.json ... Checking if you have Win32::Process 0.14 ... Yes (0.16) Checking if you have Test::More 0.47 ... Yes (1.001009) Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.04) Building and testing IPC-Run-0.94 ... cp lib/IPC/Run/Win32Pump.pm blib\lib\IPC\Run\Win32Pump.pm cp lib/IPC/Run/Timer.pm blib\lib\IPC\Run\Timer.pm cp lib/IPC/Run/Debug.pm blib\lib\IPC\Run\Debug.pm cp lib/IPC/Run/Win32IO.pm blib\lib\IPC\Run\Win32IO.pm cp lib/IPC/Run/Win32Helper.pm blib\lib\IPC\Run\Win32Helper.pm cp lib/IPC/Run.pm blib\lib\IPC\Run.pm cp lib/IPC/Run/IO.pm blib\lib\IPC\Run\IO.pm "C:\strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/97_meta.t .................. skipped: Author tests not required for installation t/98_pod.t ................... skipped: Author tests not required for installation t/98_pod_coverage.t .......... skipped: Author tests not required for installation t/99_perl_minimum_version.t .. skipped: Author tests not required for installation t/adopt.t .................... skipped: adopt not implemented yet t/binmode.t .................. ok t/bogus.t .................... ok t/filter.t ................... ok t/harness.t .................. ok t/io.t ....................... ok t/kill_kill.t ................ skipped: Temporarily ignoring test failure on Win32 t/parallel.t ................. skipped: Parallel tests are dangerous on MSWin32 t/pty.t ...................... skipped: IO::Pty not installed t/pump.t ..................... ok t/run.t ...................... ok t/signal.t ................... skipped: Skipping on Win32 t/timeout.t .................. 9/26 Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) FAIL Terminate batch job (Y/N)? -----run from debugger D:\>perl -d timeout.t Loading DB routines from perl5db.pl version 1.39_10 Editor support available. Enter h or 'h h' for help, or 'perldoc perldebug' for more help. 1..26 main::(timeout.t:26): my $h; SetConsoleMode failed, LastError=|6| at C:/strawberry/perl/site/lib/Term/ReadKey.pm line 334. at C:/strawberry/perl/vendor/lib/Term/ReadLine/readline.pm line 1581. readline::readline(" DB<1> ") called at C:/strawberry/perl/vendor/lib/Term/ReadLine/Perl.pm line 11 Term::ReadLine::Perl::readline(Term::ReadLine::Perl=ARRAY(0x3d6d990), " DB<1> ") called at C:/strawberry/perl/lib/perl5db.pl line 7281 DB::readline(" DB<1> ") called at C:/strawberry/perl/lib/perl5db.pl line 1831 DB::_DB__read_next_cmd(undef) called at C:/strawberry/perl/lib/perl5db.pl line 2741 DB::DB called at timeout.t line 26 DB<1> n main::(timeout.t:27): my $t; DB<1> main::(timeout.t:28): my $in; DB<1> main::(timeout.t:29): my $out; DB<1> main::(timeout.t:30): my $started; DB<1> main::(timeout.t:32): $h = harness( [ $^X ], \$in, \$out, $t = timeout( 1 ) ); DB<1> main::(timeout.t:33): ok( $h->isa('IPC::Run') ); DB<1> ok 1 main::(timeout.t:34): ok( !! $t->is_reset ); DB<1> ok 2 main::(timeout.t:35): ok( ! $t->is_running ); DB<1> ok 3 main::(timeout.t:36): ok( ! $t->is_expired ); DB<1> ok 4 main::(timeout.t:37): $started = time; DB<1> main::(timeout.t:38): $h->start; DB<1> main::(timeout.t:39): ok( 1 ); DB<1> ok 5 main::(timeout.t:40): ok( ! $t->is_reset ); DB<1> ok 6 main::(timeout.t:41): ok( !! $t->is_running ); DB<1> ok 7 main::(timeout.t:42): ok( ! $t->is_expired ); DB<1> ok 8 main::(timeout.t:43): $in = ''; DB<1> main::(timeout.t:44): eval { $h->pump }; DB<1> main::(timeout.t:44): eval { $h->pump }; DB<1> ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) at C:/strawberry/perl/vendor/lib/IPC/Run.pm line 1598. IPC::Run::kill_kill(IPC::Run=HASH(0x40e7f48)) called at C:/strawberry/perl/vendor/lib/IPC/Run.pm line 2751 IPC::Run::start(IPC::Run=HASH(0x40e7f48)) called at timeout.t line 60 Terminating on signal SIGBREAK(21) Terminating on signal SIGBREAK(21) ---- Show quoted text
---run debugger again stepping through the statements that caused issue--- main::(timeout.t:44): eval { $h->pump }; DB<1> s main::(timeout.t:44): eval { $h->pump }; DB<1> s IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3260): 3260: die "pump() takes only a a single harness as a parameter" 3261: unless @_ == 1 && UNIVERSAL::isa( $_[0], __PACKAGE__ ); DB<1> IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3263): 3263: my IPC::Run $self = shift; DB<1> s IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3265): 3265: local $cur_self = $self; DB<1> s IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3267): 3267: _debug "** pumping" 3268: if _debugging; DB<1> s IPC::Run::Debug::_debugging((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:91): 91: sub _debugging() { _debugging_atleast 1 } DB<1> s IPC::Run::Debug::_debugging_atleast((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:84): 84: my $min_level = shift || 1; DB<1> s IPC::Run::Debug::_debugging_atleast((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:86): 86: my $level = _debugging_level; DB<1> s IPC::Run::Debug::_debugging_level((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:65): 65: my $level = 0; DB<1> s IPC::Run::Debug::_debugging_level((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:67): 67: $level = $IPC::Run::cur_self->{debug} || 0 68: if $IPC::Run::cur_self 69: && ( $IPC::Run::cur_self->{debug} || 0 ) >= $level; DB<1> s IPC::Run::Debug::_debugging_level((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:71): 71: if ( defined $ENV{IPCRUNDEBUG} ) { DB<1> s IPC::Run::Debug::_debugging_level((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:80): 80: return $level; DB<1> s IPC::Run::Debug::_debugging_atleast((eval 8)[C:/strawberry/perl/vendor/lib/IPC/Run/Debug.pm:104]:88): 88: return $level >= $min_level ? $level : 0; DB<1> s IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3271): 3271: $self->start if $self->{STATE} < _started; DB<1> s IPC::Run::pump(C:/strawberry/perl/vendor/lib/IPC/Run.pm:3272): 3272: croak "process ended prematurely" unless $self->pumpable; I am hoping someone might glean something from the output above. I don't think win32 should have to skip this test entirely, but that is also a solution so that I may continue to smoke test it. Let me know if you have any ideas. Thanks.
Ticket migrated to github as https://github.com/toddr/IPC-Run/issues/60