develooper Front page | perl.perl5.porters | Postings from February 2012

[perl #109718] fork.t fails on Win32 since v5.15.4-465-g676a678

Thread Previous
From:
Tony Cook
Date:
February 3, 2012 00:30
Subject:
[perl #109718] fork.t fails on Win32 since v5.15.4-465-g676a678
Message ID:
rt-3.6.HEAD-14510-1328257821-501.109718-75-0@perl.org
# New Ticket Created by  Tony Cook 
# Please include the string:  [perl #109718]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=109718 >



This is a bug report for perl from tony@develop-help.com,
generated with the help of perlbug 1.39 running under perl 5.15.7.


-----------------------------------------------------------------
[Please describe your issue here]

x64 MSVC build, but smokes have been failing too:

C:\Users\tony\dev\perl\git\perl\t>.\perl harness -v op/fork.t
op/fork.t ..
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
ok 15
PROG:
if (eval q{$pid = fork}) {
    eval q{ die "parent died" };
    print $@;
}
else {
    eval q{ die "child died" };
    print $@;
}
EXPECTED:
parent died at (eval 2) line 1.
child died at (eval 2) line 1.
GOT:

# Failed at ./test.pl line 1076
not ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
1..25
Failed 1/25 subtests

Test Summary Report
-------------------
op/fork.t (Wstat: 0 Tests: 25 Failed: 1)
  Failed test:  16
Files=1, Tests=25, 13 wallclock secs ( 0.08 usr +  0.00 sys =  0.08 CPU)
Result: FAIL

Tested to be broken by 676a678ac0683a727a07d56ed1a6e1fb59085d5a:

C:\Users\tony\dev\perl\git\perl\t>git log -n1
WARNING: terminal is not fully functional
commit 676a678ac0683a727a07d56ed1a6e1fb59085d5a
Author: Zefram <zefram@fysh.org>
Date:   Sat Nov 19 16:00:32 2011 +0000

    narrower localisation of PL_compcv around eval

    PL_compcv used to be localised around the entire string eval process,
    and hence at runtime of the evaled code would refer to the evaled code
    rather than code of a surrounding compilation.  This interfered with the
    ability of string-evaled code in a BEGIN block to affect the surrounding
    compilation, in a similar way to the localisation of $^H and %^H that
    was fixed in f45b078d20.

    Similar to the fix there, this change moves the localisation of PL_compcv
    inside the new evalcomp scope.  A couple of things were relying on
    PL_compcv to find the running code when in a string-eval scope; they now
    need to find it from cx->blk_eval.cv, which was already being populated.

C:\Users\tony\dev\perl\git\perl\t>.\perl harness -v op/fork.t
op/fork.t ..
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
ok 15
(windows complains about a crashed program)
PROG:
if (eval q{$pid = fork}) {
    eval q{ die "parent died" };
    print $@;
}
else {
    eval q{ die "child died" };
    print $@;
}
EXPECTED:
parent died at (eval 2) line 1.
child died at (eval 2) line 1.
GOT:

# Failed at ./test.pl line 1033
not ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
1..25
Failed 1/25 subtests

Test Summary Report
-------------------
op/fork.t (Wstat: 0 Tests: 25 Failed: 1)
  Failed test:  16
Files=1, Tests=25, 18 wallclock secs ( 0.02 usr +  0.02 sys =  0.03 CPU)
Result: FAIL

C:\Users\tony\dev\perl\git\perl\t>cd ..

C:\Users\tony\dev\perl\git\perl>git clean -dxf

C:\Users\tony\dev\perl\git\perl>git checkout "676a678ac0683a727a07d56ed1a6e1fb59
085d5a^"
Previous HEAD position was 676a678... narrower localisation of PL_compcv around
eval
HEAD is now at fde6729... sv.c: More consistent use of spaces after dots

C:\Users\tony\dev\perl\git\perl>cd win32

C:\Users\tony\dev\perl\git\perl\win32>dmake test-prep
(noise removed)
C:\Users\tony\dev\perl\git\perl\win32>cd ..\t

C:\Users\tony\dev\perl\git\perl\t>.\perl harness -v op/fork.t
op/fork.t ..
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
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
1..25
ok
All tests successful.
Files=1, Tests=25, 14 wallclock secs ( 0.02 usr +  0.03 sys =  0.05 CPU)
Result: PASS



[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=medium
---
Site configuration information for perl 5.15.7:

Configured by tony at Fri Feb  3 19:01:40 2012.

Summary of my perl5 (revision 5 version 15 subversion 7) configuration:
  Derived from: 864fd8d30af274c82a36ddaf90ed55c91f64ebc7
  Platform:
    osname=MSWin32, osvers=6.1, archname=MSWin32-x64-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    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='cl', ccflags ='-nologo -GF -W3 -Od -MD -Zi -DDEBUGGING -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO',
    optimize='-Od -MD -Zi -DDEBUGGING -fp:precise',
    cppflags='-DWIN32'
    ccversion='15.00.30729.01', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='__int64', ivsize=8, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -debug  -libpath:"c:\perl-none\lib\CORE"  -machine:AMD64 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"'
    libpth=\lib
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl515.lib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug  -libpath:"c:\perl-none\lib\CORE"  -machine:AMD64 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"'

Locally applied patches:
    

---
@INC for perl 5.15.7:
    lib
    C:/Users/tony/dev/perl/git/perl/lib
    .

---
Environment for perl 5.15.7:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\amd64;c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\x64;C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin;C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Windows\Microsoft.NET\Framework64\v2.0.50727;C:\Windows\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft SDKs\Windows\v7.0\Setup;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessComm
 on\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files (x86)\Windows Live\Shared;c:\apps\git\cmd;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\
    PERL_BADLANG (unset)
    SHELL (unset)


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About