Closed genio closed 1 year ago
I see the same problem with Strawberry 5.20 on Win 10 and Server 2012, but not Win 7 or Server 2008. More specifically, it fails when running "dmake test" running t/timeout.t.
t/timeout.t .................. 9/26 Terminating on signal SIGBREAK(21)
Terminating on signal SIGBREAK(21)
Terminating on signal SIGBREAK(21)
^CTerminating on signal SIGBREAK(21)
Terminating on signal SIGBREAK(21)
t/timer.t also fails with a similar error.
I don't have access to windows 10 to sort this. Can you provide any further information?
cpanm (App::cpanminus) 1.7043 on perl 5.026001 built for MSWin32-x64-multi-thread
Work directory is C:\Users\CWHITE~1/.cpanm/work/1522114671.6240
You have make C:\Strawberry\c\bin\gmake.exe
You have LWP 6.27
Falling back to Archive::Tar 2.26
Searching IPC::Run () on cpanmetadb ...
--> Working on IPC::Run
Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-0.97.tar.gz
-> OK
Unpacking IPC-Run-0.97.tar.gz
Entering IPC-Run-0.97
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.30)
Configuring IPC-Run-0.97
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for IPC::Run
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.30)
Checking if you have Test::More 0.47 ... Yes (1.302096)
Checking if you have Win32::Process 0.14 ... Yes (0.16)
Checking if you have Win32API::File 0.1203 ... Yes (0.1203)
Building and testing IPC-Run-0.97
cp lib/IPC/Run/Debug.pm blib\lib\IPC\Run\Debug.pm
cp lib/IPC/Run.pm blib\lib\IPC\Run.pm
cp lib/IPC/Run/Timer.pm blib\lib\IPC\Run\Timer.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/Win32Pump.pm blib\lib\IPC\Run\Win32Pump.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
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)
^CTerminate batch job (Y/N)? Terminate batch job (Y/N)? Terminate batch job (Y/N)?
It happens on Win10 with Strawberry 5.26.1.1 as well. The SIGBREAK happens without intervention.
C:\Users\cwhitener>cpanm IPC::Run
--> Working on IPC::Run
Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-0.97.tar.gz ... OK
Configuring IPC-Run-0.97 ... OK
Building and testing IPC-Run-0.97 ... Terminating on signal SIGBREAK(21)
Terminate batch job (Y/N)? n
C:\Users\cwhitener>
It can be reproduced on appveyor: https://ci.appveyor.com/project/eserte/doit/build/1.0.271/job/cr4acejsdvdlv16c
Today with 0.97 it's the first time I saw this problem --- usually installing IPC::Run using cpanm on the appveyor systems with strawberryperl just worked.
... OK, it worked because the latest IPC::Run used to be preinstalled in strawberryperl. Today it's the first time an upgrade with cpanm was attempted.
Ideally we need to bisect back to where this started failing. My windows vm is still broken. Hopefully I’ll figure it out later this week
It installs Ok on my Windows 7, Strawberry 5.20.0.
From #62:
@toddr This test is blocking tests on windows. If I go back to v0.90 it still fails. This means either windows changed something or SP changed something. As I'm getting reports that it still works, I'm inclined to just skip.
@toddr adding $SIG{BREAK} = 'IGNORE' doesn't seem to prevent the signal from bubbling up.
@toddr Possibly related ttps://rt.cpan.org/Ticket/Display.html?id=120926
Need to try SP 5.20.0 on windows 10 to try to determine if this is a windows or SP issue.
https://github.com/toddr/IPC-Run/issues/25 is a dupe of this.
Windows 10 and SP 5.20:
c:\Strawberry>
c:\Strawberry>5.20.3.3\portableshell.bat
----------------------------------------------
Welcome to Strawberry Perl Portable Edition!
* URL - http://www.strawberryperl.com/
* see README.TXT for more info
----------------------------------------------
Perl executable: c:\Strawberry\5.20.3.3\perl\bin\perl.exe
Perl version : 5.20.3 / MSWin32-x64-multi-thread
c:\Strawberry>cpanm IPC::Run
--> Working on IPC::Run
Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-0.99.tar.gz ... OK
Configuring IPC-Run-0.99 ... OK
Building and testing IPC-Run-0.99 ... Terminating on signal SIGBREAK(21)
Terminate batch job (Y/N)? n
c:\Strawberry>cpanm IPC::Run@0.90
! Finding IPC::Run (== 0.90) on cpanmetadb failed.
--> Working on IPC::Run
Fetching http://backpan.perl.org/authors/id/T/TO/TODDR/IPC-Run-0.90.tar.gz ... OK
Configuring IPC-Run-0.90 ... OK
Building and testing IPC-Run-0.90 ... Terminating on signal SIGBREAK(21)
Terminate batch job (Y/N)? n
c:\Strawberry>
windows 10, perl 5.20.0, IPC::Run 0.92 ships with it, but also fails install:
c:\Strawberry>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..
c:\Strawberry>5.20.0.1\portableshell.bat
----------------------------------------------
Welcome to Strawberry Perl Portable Edition!
* URL - http://www.strawberryperl.com/
* see README.TXT for more info
----------------------------------------------
Perl executable: c:\Strawberry\5.20.0.1\perl\bin\perl.exe
Perl version : 5.20.0 / MSWin32-x64-multi-thread
c:\Strawberry>perl -MIPC::Run -E "say $IPC::Run::VERSION"
0.92
c:\Strawberry>cpanm IPC::Run
--> Working on IPC::Run
Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-0.99.tar.gz ... OK
Configuring IPC-Run-0.99 ... OK
Building and testing IPC-Run-0.99 ... Terminating on signal SIGBREAK(21)
Terminate batch job (Y/N)? n
c:\Strawberry>cpanm --test-only IPC::Run@0.92
--> Working on IPC::Run
Fetching http://backpan.perl.org/authors/id/T/TO/TODDR/IPC-Run-0.92.tar.gz ... OK
Configuring IPC-Run-0.92 ... OK
Building and testing IPC-Run-0.92 ... Terminating on signal SIGBREAK(21)
Terminate batch job (Y/N)? n
c:\Strawberry>
Sorry, I accidentally clicked the wrong button.
Someone has to put a DebugBreak() or __builtin_trap() or a BP in the perl sig handler func sig_terminate() , to capture a callstack. Was it a pure software raise() on same thread, or a new thread? Ctrl-C'es on Win32 execute in a separate spawned thread (basically console proc does a CreateRemoteThread() with a func pointer from console app proc that console app proc sent to console proc through secret MS IPC/RPC when the console app attached to a console handle, typ on startup ), not on the "main" thread.
I dont fully get the line numbers in this ticket vs the perl source I see in the repo, but if " $self->signal( "TERM" );" from Run.pm:kill_kill executed, why would "Terminating on signal SIGBREAK(21)" be wrong?
@bulk88 thanks for looking. the line numbers have changed since we've made several recent changes. Right now make test hangs. It looks like something in make (some sort of bat file?) is catching a signal and causing the whole test suite to hang?
I am facing similar issue running the test IPC-Run-20180523.0 on Windows Server 2016 "C:\iwperl.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\autoflush.t ........................ ok t\binmode.t .......................... ok t\bogus.t ............................ ok t\eintr.t ............................ No such signal: SIGUSR1 at t\eintr.t line 27. t\eintr.t ............................ skipped: can't deliver a signal on this platform 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\readonly.t ......................... skipped: Readonly is require for this test to work. t\run.t .............................. ok t\run_stdin-callback-return-array.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)
Please let me know any update on this. Thanks, Jamey
I seem to be having a very similar problem on Windows 10, Strawberry Perl 5.26. The upgrade attempt shows:
cpan> upgrade IPC::Run
Package namespace installed latest in CPAN file
IPC::Run 0.96 20180523.0 TODDR/IPC-Run-20180523.0.tar.gz
Running install for module 'IPC::Run'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\T\TO\TODDR\IPC-Run-20180523.0.tar.gz ok
Configuring T/TO/TODDR/IPC-Run-20180523.0.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for IPC::Run
Writing MYMETA.yml and MYMETA.json
TODDR/IPC-Run-20180523.0.tar.gz
C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for T/TO/TODDR/IPC-Run-20180523.0.tar.gz
---- Unsatisfied dependencies detected during ----
---- TODDR/IPC-Run-20180523.0.tar.gz ----
IO::Pty [requires,optional]
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/Win32Pump.pm blib\lib\IPC\Run\Win32Pump.pm
cp lib/IPC/Run/Timer.pm blib\lib\IPC\Run\Timer.pm
cp lib/IPC/Run.pm blib\lib\IPC\Run.pm
cp lib/IPC/Run/IO.pm blib\lib\IPC\Run\IO.pm
cp lib/IPC/Run/Win32Helper.pm blib\lib\IPC\Run\Win32Helper.pm
TODDR/IPC-Run-20180523.0.tar.gz
C:\STRAWB~1\c\bin\gmake.exe -- OK
Running make test for TODDR/IPC-Run-20180523.0.tar.gz
"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/autoflush.t ........................ ok
t/binmode.t .......................... ok
t/bogus.t ............................ ok
t/eintr.t ............................ No such signal: SIGUSR1 at t/eintr.t line 27.
t/eintr.t ............................ skipped: can't deliver a signal on this platform
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/readonly.t ......................... ok
t/run.t .............................. ok
t/run_stdin-callback-return-array.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)
Terminate batch job (Y/N)? Terminate batch job (Y/N)? y
y
The SIGBREAK is spontaneous (my only action was to hit 'y' twice, which still leaves cpan hung up).
Prereq IO::Pty refuses to install (optional anyway??) on a non-POSIX system. I'm not sure if IPC::Run was ever successfully upgraded since the Perl install ca. January 2018.
An update... I unpacked the installation (20180523) onto my desktop, brought in the 2 or 3 updates since the release (latest: 20180924), and tried a build/upgrade there:
C:\Users\Phil\Desktop\IPC-Run-20180523.0>cpan .
Loading internal logger. Log::Log4perl recommended for better logging
You are visiting the local directory
'.'
without lock, take care that concurrent processes do not do likewise.
CPAN: Time::HiRes loaded ok (v1.976)
CPAN: CPAN::SQLite loaded ok (v0.217)
CPAN: LWP::UserAgent loaded ok (v6.39)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
CPAN: YAML::XS loaded ok (v0.80)
Fetching with LWP:
http://cpan.strawberryperl.com/modules/02packages.details.txt.gz
Fetching with LWP:
http://cpan.strawberryperl.com/modules/03modlist.data.gz
Database was generated on Mon, 14 Oct 2019 18:48:01 GMT
Updating database file ... Done!
You are visiting the local directory
'C:/Users/Phil/Desktop/IPC-Run-20180523.0/.'
without lock, take care that concurrent processes do not do likewise.
C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
Has already been unwrapped into directory C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20190920)
Configuring C:/Users/Phil/Desktop/IPC-Run-20180523.0/. with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for IPC::Run
Writing MYMETA.yml and MYMETA.json
Directory 'C:/Users/Phil/Desktop/IPC-Run-20180523.0/.' not below C:\STRAWB~1\cpan\build, will not store persistent state
C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
---- Unsatisfied dependencies detected during ----
---- C:/Users/Phil/Desktop/IPC-Run-20180523.0/. ----
IO::Pty [requires,optional]
cp lib/IPC/Run/Win32IO.pm blib\lib\IPC\Run\Win32IO.pm
cp lib/IPC/Run.pm blib\lib\IPC\Run.pm
cp lib/IPC/Run/Win32Helper.pm blib\lib\IPC\Run\Win32Helper.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/Win32Pump.pm blib\lib\IPC\Run\Win32Pump.pm
cp lib/IPC/Run/IO.pm blib\lib\IPC\Run\IO.pm
C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
C:\STRAWB~1\c\bin\gmake.exe -- OK
Running make test for C:/Users/Phil/Desktop/IPC-Run-20180523.0/.
"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/autoflush.t ........................ ok
t/binmode.t .......................... ok
t/bogus.t ............................ ok
t/child_fd_inadvertently_closed.t .... Can't spawn a subroutine on Win32 at t/child_fd_inadvertently_closed.t line 57.
No command before '3<' at t/child_fd_inadvertently_closed.t line 57.
Unexpected SCALAR(0x1f8a5c8) in harness() parameter 7 at t/child_fd_inadvertently_closed.t line 57.
# Looks like your test exited with 25 before it could output anything.
t/child_fd_inadvertently_closed.t .... Dubious, test returned 25 (wstat 6400, 0x1900)
Failed 1/1 subtests
t/eintr.t ............................ No such signal: SIGUSR1 at t/eintr.t line 27.
t/eintr.t ............................ skipped: can't deliver a signal on this platform
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/readonly.t ......................... ok
t/run.t .............................. ok
t/run_stdin-callback-return-array.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)
Terminate batch job (Y/N)? Terminate batch job (Y/N)? y
y
No real change (not fixed). Also note that the new t-test failed, so you may want to look at that. Could the lack of IO::Pty be breaking something in the timeout.t test?
Todd, if you want to send me revised installation images to try (as above) on my Windows 10/Strawberry Perl 5.26, I'll be happy to try them out.
With the latest release (20200505.0) on Strawberry Perl 5.26.1, Windows 10, timeout.t no longer fails. Unfortunately, there are a number of other test failures. I see in the test matrix that all Windows tests are failing. I will open a new ticket for the new items.
Yup, confirmed, upgrading from 20180523.0
(distributed with Strawberry Perl 5.28.0.1) to 20220807.0
has made the SIGBREAKs go away. Again, the tests are failing due to some newline weirdnesses, but I can live with that.
Haven't investigated further.
With Strawberry 5.24, somehow every time I try to install IPC::Run, the installation dies with a
SIGBREAK