Skip Menu |
Report information
Id: 132633
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: sisyphus <sisyphus1 [at] optusnet.com.au>
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



Subject: [Win32] 5.27.7 fails all tests.
From: <sisyphus1 [...] optusnet.com.au>
To: <perlbug [...] perl.org>
Date: Thu, 21 Dec 2017 15:01:13 +1100
Download (untitled) / with headers
text/plain 3.2k
Hi, Attached is the (abridged) output of running 'gmake test' for 5.27.7 on Windows. It's essentially the same for both 32-bit and 64-bit builds, and there was no such problem with version 5.27.6. In a nutshell, the command 'perl.exe harness', when run from the win32/t folder launches into the normal running of the test scripts for 5.27.6. But for 5.27.7, for each and every test script, the same command just outputs: '1' is not recognized as an internal or external command, operable program or batch file. <scriptname>.t ........................................................ No subtests run which is counted as a fail: <scriptname>.t (Wstat: 0 Tests: 0 Failed: 0) Parse errors: No plan found in TAP output Here is the 'perl -V' of the build that produced the attached t.txt: Summary of my perl5 (revision 5 version 27 subversion 7) configuration: Platform: osname=MSWin32 osvers=6.1.7601 archname=MSWin32-x86-multi-thread-64int uname='' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='gcc' ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields' optimize='-s -O2' cppflags='-DWIN32' ccversion='' gccversion='7.2.0' gccosandvers='' intsize=4 longsize=4 ptrsize=4 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=12 longdblkind=3 ivtype='long long' ivsize=8 nvtype='double' nvsize=8 Off_t='long long' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='g++' ldflags ='-s -L"c:\perl\lib\CORE" -L"C:\_32\gcc-mingw-720\mingw32\lib"' libpth=C:\_32\gcc-mingw-720\mingw32\lib libs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 perllibs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 libc= so=dll useshrplib=true libperl=libperl527.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs dlext=dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-mdll -s -L"c:\perl\lib\CORE" -L"C:\_32\gcc-mingw-720\mingw32\lib"' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF Built under MSWin32 Compiled at Dec 21 2017 13:50:06 @INC: C:/_32/comp/perl-5.27.7/lib
Download t.txt
text/plain 29.6k

Message body is not shown because sender requested not to inline it.

Date: Thu, 21 Dec 2017 15:22:04 +1100
To: <perl5-porters [...] perl.org>, <bugs-bitbucket [...] rt.perl.org>
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
From: <sisyphus1 [...] optusnet.com.au>
Download (untitled) / with headers
text/plain 239b
Show quoted text
-----Original Message----- From: Sisyphus (via RT)
> In a nutshell, the command 'perl.exe harness', when run from the win32/t > folder ....
Duh - there is no such folder. I meant the top-level/t folder (or win32/../t) Cheers, Rob
To: perl5-porters [...] perl.org
Date: Thu, 21 Dec 2017 04:49:07 +0000
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
From: Zefram <zefram [...] fysh.org>
Download (untitled) / with headers
text/plain 304b
Sisyphus wrote: Show quoted text
>'1' is not recognized as an internal or external command, >operable program or batch file.
That sounds like something is passing a one-element array to readpipe() in list context. It would be broken by commit 397baf232086e0a9ad6f881a9614d3dbaea853fc which fixed [perl #4574]. -zefram
To: perl5-porters [...] perl.org
Date: Thu, 21 Dec 2017 05:00:35 +0000
From: Zefram <zefram [...] fysh.org>
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
Download (untitled) / with headers
text/plain 220b
I wrote: Show quoted text
>That sounds like something is passing a one-element array >to readpipe() in list context.
But I don't see any code in the core distro that would do that. This needs a Windows person to track it down. -zefram
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
CC: perl5-porters [...] perl.org
To: Zefram <zefram [...] fysh.org>
Date: Thu, 21 Dec 2017 08:37:03 +0000
From: Steve Hay via perl5-porters <perl5-porters [...] perl.org>
Download (untitled) / with headers
text/plain 616b
On 21 December 2017 at 04:49, Zefram <zefram@fysh.org> wrote: Show quoted text
> Sisyphus wrote:
>>'1' is not recognized as an internal or external command, >>operable program or batch file.
> > That sounds like something is passing a one-element array > to readpipe() in list context. It would be broken by commit > 397baf232086e0a9ad6f881a9614d3dbaea853fc which fixed [perl #4574]. >
Current blead (fe2024f944c63d1ef0759b7fcf1b4577462ba167) is failing just the same for me. Reverting 397baf232086e0a9ad6f881a9614d3dbaea853fc does not fix it. I will have a look later if nobody else has got there. Sorry I missed this for 5.27.7.
From: Steve Hay via perl5-porters <perl5-porters [...] perl.org>
CC: perl5-porters [...] perl.org
To: Zefram <zefram [...] fysh.org>
Date: Thu, 21 Dec 2017 09:34:46 +0000
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
On 21 December 2017 at 08:37, Steve Hay <steve.m.hay@googlemail.com> wrote: Show quoted text
> On 21 December 2017 at 04:49, Zefram <zefram@fysh.org> wrote:
>> Sisyphus wrote:
>>>'1' is not recognized as an internal or external command, >>>operable program or batch file.
>> >> That sounds like something is passing a one-element array >> to readpipe() in list context. It would be broken by commit >> 397baf232086e0a9ad6f881a9614d3dbaea853fc which fixed [perl #4574]. >>
> > Current blead (fe2024f944c63d1ef0759b7fcf1b4577462ba167) is failing > just the same for me. > Reverting 397baf232086e0a9ad6f881a9614d3dbaea853fc does not fix it. > I will have a look later if nobody else has got there. Sorry I missed > this for 5.27.7.
I had a quick skim through the changes since I last made a commit (when things were definitely working) and tried a couple of builds before/after likely candidates for the cause. I quickly found the culprit is this: 64def2aeaeb63f92dadc6dfa33486c1d7b311963: perform system() arg processing before fork but I won't have time to investigate further until later.
From: Tomasz Konojacki <me [...] xenu.pl>
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
Date: Thu, 21 Dec 2017 13:39:38 +0100
To: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 958b
On Thu, 21 Dec 2017, at 10:34, Steve Hay via perl5-porters wrote: Show quoted text
> I had a quick skim through the changes since I last made a commit > (when things were definitely working) and tried a couple of builds > before/after likely candidates for the cause. I quickly found the > culprit is this: > > 64def2aeaeb63f92dadc6dfa33486c1d7b311963: perform system() arg > processing before fork > > but I won't have time to investigate further until later.
Perhaps it has something to do with windows-specific system(1, "foo") hack? Excerpt from perlport: system(1, @args) spawns an external process and immediately returns its process designator, without waiting for it to terminate. Return value may be used subsequently in wait or waitpid PID,FLAGS. Failure to spawn() a subprocess is indicated by setting $? to 255 << 8 . $? is set in a way compatible with Unix (i.e. the exit status of the subprocess is obtained by $?>> 8 , as described in the documentation).
From: Zefram <zefram [...] fysh.org>
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
To: perl5-porters [...] perl.org
Date: Thu, 21 Dec 2017 12:56:13 +0000
Download (untitled) / with headers
text/plain 497b
Tomasz Konojacki wrote: Show quoted text
>Perhaps it has something to do with windows-specific system(1, "foo") hack?
Ooh, nice. There's code in win32/win32.c's do_aspawn() that looks for a strictly numeric first argument: if (SvNIOKp(*(mark+1)) && !SvPOKp(*(mark+1))) { ++mark; flag = SvIVx(*mark); } So that has the number/string bug. The argument copying that now happens in the parent process doesn't preserve numericness, so breaks this. Do we have to preserve the number/string bug? -zefram
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 713b
On Thu, 21 Dec 2017 04:56:37 -0800, zefram@fysh.org wrote: Show quoted text
> Tomasz Konojacki wrote:
> >Perhaps it has something to do with windows-specific system(1, "foo") hack?
> > Ooh, nice. There's code in win32/win32.c's do_aspawn() that looks for > a strictly numeric first argument: > > if (SvNIOKp(*(mark+1)) && !SvPOKp(*(mark+1))) { > ++mark; > flag = SvIVx(*mark); > } > > So that has the number/string bug. The argument copying that now happens > in the parent process doesn't preserve numericness, so breaks this. > > Do we have to preserve the number/string bug?
I think in this case we have to, much as I dislike it, because there could be an executable file called "1". -- Father Chrysostomos
Subject: Re: [perl #132633] [Win32] 5.27.7 fails all tests.
From: Zefram <zefram [...] fysh.org>
To: perl5-porters [...] perl.org
Date: Fri, 22 Dec 2017 05:36:30 +0000
Should be fixed by commit 8fe3452cc6ac7af8c08c2044cd3757018a9c8887. -zefram
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 179b
On Thu, 21 Dec 2017 21:36:43 -0800, zefram@fysh.org wrote: Show quoted text
> Should be fixed by commit 8fe3452cc6ac7af8c08c2044cd3757018a9c8887. >
All working again now. Thanks for fixing this.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org