FAQ
Since 31710, t/op/taint.t has been failing under Cygwin:

op/taint.........................................................1..261
not ok 1
# Failed test at line 158
ok 2
not ok 3
# Failed test at line 176
ok 4
ok 5
ok 6
ok 7
ok 8 # skip: This is not VMS
ok 9 # skip: This is not VMS
ok 10 # skip: This is not VMS
ok 11 # skip: This is not VMS
ok 12
8 [main] perl 33712 fork: child -1 - died waiting for longjmp
before initialization, retry 0, exit code 0xC0000135, errno 11
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
panic: MUTEX_LOCK (45) [util.c:2559] at op/taint.t line 283.
# Looks like you planned 261 tests but ran 30.
panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
dubious
Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1, 3, 31-261
Failed 233/261 tests, 10.73% okay

Search Discussions

  • Reini Urban at Aug 15, 2007 at 6:29 pm

    Jerry D. Hedden schrieb:
    Since 31710, t/op/taint.t has been failing under Cygwin:

    op/taint.........................................................1..261
    not ok 1
    # Failed test at line 158
    ok 2
    not ok 3
    # Failed test at line 176
    ok 4
    ok 5
    ok 6
    ok 7
    ok 8 # skip: This is not VMS
    ok 9 # skip: This is not VMS
    ok 10 # skip: This is not VMS
    ok 11 # skip: This is not VMS
    ok 12
    8 [main] perl 33712 fork: child -1 - died waiting for longjmp
    before initialization, retry 0, exit code 0xC0000135, errno 11
    ok 13
    ok 14
    ok 15
    ok 16
    ok 17
    ok 18
    ok 19
    ok 20
    ok 21
    ok 22
    ok 23
    ok 24
    ok 25
    ok 26
    ok 27
    ok 28
    ok 29
    ok 30
    panic: MUTEX_LOCK (45) [util.c:2559] at op/taint.t line 283.
    # Looks like you planned 261 tests but ran 30.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    dubious
    Test returned status 2 (wstat 512, 0x200)
    DIED. FAILED tests 1, 3, 31-261
    Failed 233/261 tests, 10.73% okay
    I get the same.
    Still wondering why. First I thought some wrong PATH handling in the
    Makefile. But I cannot verify this.
    The -D1 file is huge...

    For my it looks like an endless recursion somewhere.
  • Reini Urban at Aug 15, 2007 at 6:57 pm

    Reini Urban schrieb:
    Jerry D. Hedden schrieb:
    Since 31710, t/op/taint.t has been failing under Cygwin:
    panic: MUTEX_LOCK (45) [util.c:2559] at op/taint.t line 283.
    # Looks like you planned 261 tests but ran 30.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    dubious
    Test returned status 2 (wstat 512, 0x200)
    DIED. FAILED tests 1, 3, 31-261
    Failed 233/261 tests, 10.73% okay
    I get the same.
    Still wondering why. First I thought some wrong PATH handling in the
    Makefile. But I cannot verify this.
    The -D1 file is huge...

    For my it looks like an endless recursion somewhere.
    Nope.

    simple testcase:
    #!/bin/sh
    echo 'print "@ARGV\n"' > echo4064
    TERM=dumb PATH=/usr/bin ./perl.exe -T -e"eval {`./perl ./echo4064 1`} eq
    1 and print 'ok';"
    TERM=dumb PATH= ./perl.exe -T -e"eval {`./perl ./echo4064 1`} eq 1 and
    print 'ok';"

    With empty PATH it fails.

    $ TERM=dumb PATH=/usr/src/perl/blead/bleadperl /usr/bin/gdb ../miniperl.exe
    GNU gdb 6.5.50.20060706-cvs (cygwin-special)
    This GDB was configured as "i686-pc-cygwin"...
    (gdb) run -D1u -T -e"print 1;"
    Starting program: /usr/src/perl/blead/bleadperl/miniperl.exe -D1u -T
    -e"print 1;"
    gdb: unknown target exception 0xc0000135 at 0x7c974ed1

    Program received signal ?, Unknown signal.

    Program exited with code 030000000465.
    You can't do that without a process to debug.

    ...

    (gdb) b 0x7c974ed1
    Function "0x7c974ed1" not defined.
    Make breakpoint pending on future shared library load? (y or [n]) y

    Breakpoint 1 (0x7c974ed1) pending.
    (gdb) set args -D1u -T -e"print 1;"
    (gdb) run

    Starting program: /usr/src/perl/blead/bleadperl/miniperl.exe -D1u -T
    -e"print 1;"
    gdb: unknown target exception 0xc0000135 at 0x7c974ed1

    Program received signal ?, Unknown signal.

    Program exited with code 030000000465.
    You can't do that without a process to debug.
  • Reini Urban at Aug 17, 2007 at 6:11 am

    Reini Urban schrieb:
    Reini Urban schrieb:
    Jerry D. Hedden schrieb:
    Since 31710, t/op/taint.t has been failing under Cygwin:
    panic: MUTEX_LOCK (45) [util.c:2559] at op/taint.t line 283.
    # Looks like you planned 261 tests but ran 30.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    panic: MUTEX_LOCK (45) [op.c:445] at op/taint.t line 283.
    dubious
    Test returned status 2 (wstat 512, 0x200)
    DIED. FAILED tests 1, 3, 31-261
    Failed 233/261 tests, 10.73% okay
    I get the same.
    Still wondering why. First I thought some wrong PATH handling in the
    Makefile. But I cannot verify this.
    The -D1 file is huge...

    For my it looks like an endless recursion somewhere.
    Nope.

    simple testcase:
    #!/bin/sh
    echo 'print "@ARGV\n"' > echo4064
    TERM=dumb PATH=/usr/bin ./perl.exe -T -e"eval {`./perl ./echo4064 1`} eq
    1 and print 'ok';"
    TERM=dumb PATH= ./perl.exe -T -e"eval {`./perl ./echo4064 1`} eq 1 and
    print 'ok';"

    With empty PATH it fails.
    Even simplier.
    PATH= ./miniperl -e'print 1;'
    fails now in Cygwin.
    Nothing to do with TAINT. Strange that no other testcase did that.

    The problem is my removal of cygwin1.dll and cygcrypt-0.dll from the
    builddir. Without PATH they are not found.

    The reason why I removed them was that there should be no two
    cygwin1.dll's around.
    So I'll rather copy it in the test and not in the Makefile to make that
    clear.
  • Reini Urban at Aug 17, 2007 at 6:56 am

    Reini Urban schrieb:
    Reini Urban schrieb:
    With empty PATH it fails.
    Even simplier.
    PATH= ./miniperl -e'print 1;'
    fails now in Cygwin.
    Nothing to do with TAINT. Strange that no other testcase did that.
    It should fail. Because LD_LIBRARY_PATH=/usr/bin is missing.

    And apparently not yet honored on cygwin.
    LD_LIBRARY_PATH=/usr/bin PATH= ./miniperl -e'print 1;'
    fails also.
    The problem is my removal of cygwin1.dll and cygcrypt-0.dll from the
    builddir. Without PATH they are not found.

    The reason why I removed them was that there should be no two
    cygwin1.dll's around.
    So I'll rather copy it in the test and not in the Makefile to make that
    clear.
    This is now a clean solution. Similar to the borland dependency.

    Now my only remaining failed test is
    ext/XS/APItest/t/call.t 1/240
    # EXPECTED:
    # x=2
    # GOT:
    # STATUS: 13568
  • Abhijit Menon-Sen at Aug 18, 2007 at 8:01 am

    At 2007-08-17 08:56:38 +0200, rurban@x-ray.at wrote:
    This is now a clean solution.
    Thanks, applied. (#31731)

    -- ams
  • Reini Urban at Aug 18, 2007 at 11:46 am
    [ no need to CC me, I'm silently subscribed to p5p since years ]

    Abhijit Menon-Sen schrieb:
    At 2007-08-17 08:56:38 +0200, rurban@x-ray.at wrote:
    This is now a clean solution.
    Thanks, applied. (#31731)
    Well, it is clean, but it has other problems.

    I found out that in the situation of two cygwin1.dll's lying around and
    another external process has a shell process open (/bin/sh), and our
    stupid testcase opens another shell with the copied cygwin1.dll, it will
    fail unrecoverably.

    Maybe we should skip this first taint test with empty PATH on cygwin at
    all, resp. use /usr/bin as almost empty path and continue from there.

    What do you think about that?
  • Jerry D. Hedden at Aug 18, 2007 at 12:04 pm

    Reini Urban wrote:
    I found out that in the situation of two cygwin1.dll's lying around and
    another external process has a shell process open (/bin/sh), and our
    stupid testcase opens another shell with the copied cygwin1.dll, it will
    fail unrecoverably.

    Maybe we should skip this first taint test with empty PATH on cygwin at
    all, resp. use /usr/bin as almost empty path and continue from there.
    Agreed, and perhaps document in README.cygwin that shelling out from Perl
    with no path won't work (it's kind of pathological IMHO).
  • Jerry D. Hedden at Aug 18, 2007 at 1:56 pm

    Reini Urban wrote:
    I found out that in the situation of two cygwin1.dll's lying around and
    another external process has a shell process open (/bin/sh), and our
    stupid testcase opens another shell with the copied cygwin1.dll, it will
    fail unrecoverably.
    I'm up to change 31735 and I just got:

    t/lib/cygwin.................................................. 9
    [main] perl 2800 fork: child -1 - died waiting for longjmp before
    initialization, retry 0, exit code 0xC0000022, errno 11
    panic: MUTEX_LOCK (45) [util.c:2559] at lib/cygwin.t line 45.
    # Looks like you planned 14 tests but only ran 8.
    # Looks like your test died just after 8.
    panic: MUTEX_LOCK (45) [op.c:445] at lib/cygwin.t line 45.
    FAILED--expected 14 tests, saw 8

    Is this related, or is it something else?
  • Reini Urban at Aug 18, 2007 at 2:13 pm

    Jerry D. Hedden schrieb:
    Reini Urban wrote:
    I found out that in the situation of two cygwin1.dll's lying around and
    another external process has a shell process open (/bin/sh), and our
    stupid testcase opens another shell with the copied cygwin1.dll, it will
    fail unrecoverably.
    I'm up to change 31735 and I just got:

    t/lib/cygwin.................................................. 9
    [main] perl 2800 fork: child -1 - died waiting for longjmp before
    initialization, retry 0, exit code 0xC0000022, errno 11
    panic: MUTEX_LOCK (45) [util.c:2559] at lib/cygwin.t line 45.
    # Looks like you planned 14 tests but only ran 8.
    # Looks like your test died just after 8.
    panic: MUTEX_LOCK (45) [op.c:445] at lib/cygwin.t line 45.
    FAILED--expected 14 tests, saw 8

    Is this related, or is it something else?
    Yes, this is exactly the problem with two processes with the same base
    (/bin/sh) and two different cygwin1.dll's.

    --
    Reini

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-porters @
categoriesperl
postedAug 15, '07 at 4:52p
activeAug 18, '07 at 2:13p
posts10
users3
websiteperl.org

People

Translate

site design / logo © 2021 Grokbase