FAQ
t/run/exit.t:58: eval { POSIX::WIFEXITED() };
fails on the new cygwin-1.7 with
5 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
33394914 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
68209672 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
101617660 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
133591832 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
167437406 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
201578831 [main] perl 3500 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000005, errno 11
...
until I kill perl, because you must use an argument for WIFEXITED.
It didn't fail before, so I assume it's a cygwin regression, but it
must be fixed in the perl testsuite,
since an empty argument cries for trouble.
Use 0 or 1 as argument, ${^CHILD_ERROR_NATIVE} preferred.

diff -u t/run/exit.t.orig t/run/exit.t
--- t/run/exit.t.orig 2008-12-19 10:13:59.000000000 +0100
+++ t/run/exit.t 2009-08-03 20:36:42.937500000 +0200
@@ -55,7 +55,7 @@
if (!$vms_exit_mode) {
my $posix_ok = eval { require POSIX; };
my $wait_macros_ok = defined &POSIX::WIFEXITED;
- eval { POSIX::WIFEXITED() };
+ eval { POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}) };
$wait_macros_ok = 0 if $@;
$exit = run('exit 42');
is( $exit >> 8, 42, 'Non-zero exit' );

Search Discussions

  • Rafael Garcia-Suarez at Aug 4, 2009 at 11:14 am
    Thanks, applied as d781deb6546425b0eb8ff14422b0c2fb4352a053 to bleadperl.

    2009/8/3 Reini Urban <rurban@x-ray.at>:
    t/run/exit.t:58:    eval { POSIX::WIFEXITED() };
    fails on the new cygwin-1.7 with
    5 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    33394914 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    68209672 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    101617660 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    133591832 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    167437406 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    201578831 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    ...
    until I kill perl, because you must use an argument for WIFEXITED.
    It didn't fail before, so I assume it's a cygwin regression, but it
    must be fixed in the perl testsuite,
    since an empty argument cries for trouble.
    Use 0 or 1 as argument, ${^CHILD_ERROR_NATIVE} preferred.

    diff -u t/run/exit.t.orig t/run/exit.t
    --- t/run/exit.t.orig   2008-12-19 10:13:59.000000000 +0100
    +++ t/run/exit.t        2009-08-03 20:36:42.937500000 +0200
    @@ -55,7 +55,7 @@
    if (!$vms_exit_mode) {
    my $posix_ok = eval { require POSIX; };
    my $wait_macros_ok = defined &POSIX::WIFEXITED;
    -  eval { POSIX::WIFEXITED() };
    +  eval { POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}) };
    $wait_macros_ok = 0 if $@;
    $exit = run('exit 42');
    is( $exit >> 8, 42,             'Non-zero exit' );


    --
    Reini Urban
    http://phpwiki.org/           http://murbreak.at/


    --
    "You don't mean odds and ends, you mean des curieux et des bouts",
    corrected the manager.
    -- Terry Pratchett, Hogfather
  • Reini Urban at Aug 4, 2009 at 12:38 pm

    2009/8/4 Rafael Garcia-Suarez <rgarciasuarez@gmail.com>:
    Thanks, applied as d781deb6546425b0eb8ff14422b0c2fb4352a053 to bleadperl.

    2009/8/3 Reini Urban <rurban@x-ray.at>:
    t/run/exit.t:58:    eval { POSIX::WIFEXITED() };
    fails on the new cygwin-1.7 with
    5 [main] perl 3500 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000005, errno 11
    Thanks.
    I can confirm now that it was a cygwin regression, but a nice-to-have
    fix for perl anyway.

    My main problem was picking up an old POSIX.dll, and then it went
    into a rebase conflict. fork is still a bit crumpy with the cygwin1.dll test
    releases 1.7.0-53 - 56

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-porters @
categoriesperl
postedAug 3, '09 at 6:49p
activeAug 4, '09 at 12:38p
posts3
users2
websiteperl.org

People

Translate

site design / logo © 2022 Grokbase