On Sat, Dec 13, 2008 at 10:50:00PM +0000, Steve Hay wrote:
> Automated smoke report for 5.11.0 patch 35082
> maldoror.bath.planit.group: Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz(~2660 MHz) 
> (x86/2 cpu)
>     on        MSWin32 - WinXP/.Net SP3
>     using     ? unknown cc version 
>     smoketime 1 minute 11 seconds (average 3.550 seconds)

>    35082     Configuration (common) -DCCTYPE=BORLAND 
> -DINST_TOP=$(INST_DRV)\Smoke\doesntexist
> ----------- ---------------------------------------------------------
> m m         
> m m         -Dusemymalloc
> m m         -Duselargefiles
> m m         -Duselargefiles -Dusemymalloc
> m m         -Duseithreads -Uuseimpsys
> m m         -Duseithreads -Uuseimpsys -Dusemymalloc
> m m         -Duseithreads -Uuseimpsys -Duselargefiles
> m m         -Duseithreads -Uuseimpsys -Duselargefiles -Dusemymalloc
> m m         -Duseithreads
> m m         -Duseithreads -Duselargefiles
> | +--------- -DDEBUGGING
> +----------- no debugging

Given the only changes from last night's PASS in blead was 35082, it has to
be the cause. Presumably

a: Something in the build, at least in Win32, is using in place editing
b: Permissions there don't mean what they do on Unix, with some significant
   side effect

Although it happens *really* fast. 3.55 seconds per fail. So it's stranger...

But I have no idea what, as the smoke client doesn't provide a log for this.
I guess we wait until Monday, unless anyone else can run a Win32 build.

Nicholas Clark

Change 35082 by r...@scipion on 2008/12/13 14:01:03

        Subject: Re: [perl #60904] Race condition with perl -i.bk
        From: Chip Salzenberg <c...@pobox.com>
        Date: Mon, 1 Dec 2008 15:01:12 -0800
        Message-ID: <20081201230112.gh31...@tytlal.topaz.cx>
        
        Use mode 0600 (minus umask) for creation of the new file with -i

Affected files ...

... //depot/perl/doio.c#379 edit

Differences ...

==== //depot/perl/doio.c#379 (text) ====

@@ -811,8 +811,7 @@
                    do_close(gv,FALSE);
                    (void)PerlLIO_unlink(SvPVX_const(sv));
                    (void)PerlLIO_rename(PL_oldname,SvPVX_const(sv));
-                   do_open(gv,(char*)SvPVX_const(sv),SvCUR(sv),PL_inplace!=0,
-                           O_RDONLY,0,NULL);
+                   
do_open(gv,(char*)SvPVX_const(sv),SvCUR(sv),TRUE,O_RDONLY,0,NULL);
 #endif /* DOSISH */
 #else
                    (void)UNLINK(SvPVX_const(sv));
@@ -844,17 +843,15 @@
 #endif
                }
 
-               sv_setpvn(sv,">",!PL_inplace);
-               sv_catpvn(sv,PL_oldname,oldlen);
+               sv_setpvn(sv,PL_oldname,oldlen);
                SETERRNO(0,0);          /* in case sprintf set errno */
+               if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),TRUE,
 #ifdef VMS
-               if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),
-                            PL_inplace!=0,O_WRONLY|O_CREAT|O_TRUNC,0,NULL))
+                            O_WRONLY|O_CREAT|O_TRUNC,0,
 #else
-                   if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),
-                            PL_inplace!=0,O_WRONLY|O_CREAT|OPEN_EXCL,0666,
+                            O_WRONLY|O_CREAT|OPEN_EXCL,0600,
+#endif
                             NULL))
-#endif
                {
                    if (ckWARN_d(WARN_INPLACE)) 
                        Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do 
inplace edit on %s: %s",

Reply via email to