List Info

Thread: fork+taint+mutex_lock panic




fork+taint+mutex_lock panic
user name
2007-09-07 08:16:39
I am getting 'make test' failures under Cygwin on my home
Windows XP machine.  All are similar and appear to be some
sort of fork+taint problem.  The panics are occurring in
OP_REFCNT_LOCK calls.

op/utftaint.................................................
.....1..88
ok 1 - tainted: ascii, before test
[...SNIP...]
ok 86 - tainted: latin1, downgrade down
     10 [main] perl 2552 fork: child -1 - died waiting for
longjmp
before initialization, retry 0, exit code 0xC0000135, errno
11
panic: MUTEX_LOCK (45) [util.c:2559] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
# Looks like you planned 88 tests but ran 86.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
dubious
	Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 87-88
	Failed 2/88 tests, 97.73% okay

The failing test is:

    fresh_perl_is('$a = substr $^X, 0, 0; /x/i;
/$ax/i ||
print q,ok,',
		  'ok', {switches => ["-T",
"-l"]},
		  "matching a regexp is taint agnostic");

-----

../ext/XS/APItest/t/call....................................
.....1..240
ok 1 - use XS::APItest
[...SNIP...]
ok 239 - eval { eval_pv('d()', 1) } - $
      9 [main] perl 2824 fork: child -1 - died waiting for
longjmp
before initialization, retry 0, exit code 0xC0000135, errno
11
panic: MUTEX_LOCK (45) [util.c:2559] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
# Looks like you planned 240 tests but ran 239.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
panic: MUTEX_LOCK (45) [op.c:445] at ./test.pl line 537.
dubious
	Test returned status 2 (wstat 512, 0x200)
DIED. FAILED test 240
	Failed 1/240 tests, 99.58% okay

The failing test is:

fresh_perl_is(<<'EOF', "x=2", { switches
=> ['-T'] }, 'eval_sv() taint');

-----

../lib/warnings.............................................
.....1..566
# From lib/warnings/1global
ok 1
[...SNIP...]
ok 492
# From lib/warnings/taint
      9 [main] perl 2264 fork: child -1 - died waiting for
longjmp
before initialization, retry 0, exit code 0xC0000135, errno
11
panic: MUTEX_LOCK (45) [op.c:445] at ../lib/warnings.t line
11.
# Looks like you planned 566 tests but ran 492.
panic: MUTEX_LOCK (45) [op.c:445] at ../lib/warnings.t line
11.
panic: MUTEX_LOCK (45) [op.c:445] at ../lib/warnings.t line
11.
panic: MUTEX_LOCK (45) [op.c:445] at ../lib/warnings.t line
11.
dubious
	Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 493-566
	Failed 74/566 tests, 86.93% okay

The failure comes when trying to run t/lib/warnings/taint.t

-----

I'll try to do a binary search to find when the problem
first occurs, but until then perhaps someone else might
have
a clue.

-----

> perl -V
Command output:
Summary of my perl5 (revision 5 version 10 subversion 0
patch 31806)
configuration:
  Platform:
    osname=cygwin, osvers=1.5.24(0.15642),
archname=cygwin-thread-multi-64int
    uname='cygwin_nt-5.1 seymour 1.5.24(0.15642) 2007-01-31
10:57 i686 cygwin '
    config_args='-de -Dusedevel -Dversiononly=no
-Dinstallusrbinperl
-DPERL_OLD_COPY_ON_WRITE -Duse64bitint -Dusethreads
-Uusemymalloc
-Dnoextensions=attrs IPC/SysV Sys/Syslog DB_File NDBM_File
ODBM_File
SDBM_File Devel/DProf Devel/Peek re Text/Soundex
Math/BigInt/FastCalc
Time/Piece -A define:optimize=-O3 -pipe -funit-at-a-time
-mtune=pentium4m -march=pentium4 -mfpmath=sse -mieee-fp
-mmmx -msse
-msse2 -A append:ccflags= -DNO_MATHOMS'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define,
usesocks=undef
    use64bitint=define, use64bitall=undef,
uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV
-U__STRICT_ANSI__
-DNO_MATHOMS -fno-strict-aliasing -pipe',
    optimize='-O3 -pipe -funit-at-a-time -mtune=pentium4m
-march=pentium4 -mfpmath=sse -mieee-fp -mmmx -msse -msse2',
    cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__
-DNO_MATHOMS
-fno-strict-aliasing -pipe'
    ccversion='', gccversion='3.4.4 (cygming special, gdc
0.12, using
dmd 0.125)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8,
byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double',
nvsize=8,
Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='g++', ldflags =' -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -Wl,--enable-auto-import -s
-L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib
    libs=-lgdbm -ldl -lcrypt -lgdbm_compat
    perllibs=-ldl -lcrypt -lgdbm_compat
    libc=/usr/lib/libc.a, so=dll, useshrplib=true,
libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef,
ccdlflags=' -s'
    cccdlflags=' ', lddlflags=' --shared 
-Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -Wl,--enable-auto-import -s
-L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY NO_MATHOMS
PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP
                        PERL_USE_SAFE_PUTENV USE_64_BIT_INT
USE_ITHREADS
                        USE_LARGE_FILES USE_PERLIO
USE_REENTRANT_API
  Locally applied patches:
        DEVEL
  Built under cygwin
  Compiled at Sep  6 2007 22:33:46
  %ENV:
    CYGWIN=""
  INC:
    /usr/lib/perl5/5.10.0/cygwin
    /usr/lib/perl5/5.10.0
    .

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )