threads / bug / 40496

[BUG?] parallel make interdepencies

Subject: [BUG?] parallel make interdepencies

## tl;dr

5 messages between Oct 6, 2015 and Oct 6, 2015.

replies: 4people: 4as markdown or json

Michael J Gruber· Oct 6, 2015, 08:12 UTC · lore

"make -j3" just errored out on me, a follow-up "make" succeeded". This looks like an interdependency issue, but I don't know how to track it:

    GEN git-web--browse
    GEN git-add--interactive
    GEN git-difftool
mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
Verzeichnis nicht gefunden
(cannot stat "perl.mak")
Generating a Unix-style perl.mak
Writing perl.mak for Git
    GEN git-archimport
Writing MYMETA.yml and MYMETA.json
Generating a Unix-style perl.mak
Writing perl.mak for Git
make[2]: *** [perl.mak] Error 1
make[1]: *** [instlibdir] Error 2
Makefile:1769: recipe for target 'git-difftool' failed
make: *** [git-difftool] Error 2
make: *** Warte auf noch nicht beendete Prozesse...
Writing MYMETA.yml and MYMETA.json
make[2]: *** [perl.mak] Error 1
make[1]: *** [instlibdir] Error 2
Makefile:1769: recipe for target 'git-add--interactive' failed
make: *** [git-add--interactive] Error 2
Generating a Unix-style perl.mak
Writing perl.mak for Git
Writing MYMETA.yml and MYMETA.json
(This is on next)
Johannes Schindelin· Oct 6, 2015, 13:13 UTC · re: Michael J Gruber · lore

Re: [BUG?] parallel make interdepencies

Hi Michael,
On 2015-10-06 10:12, Michael J Gruber wrote:
Show 10 quoted lines
> "make -j3" just errored out on me, a follow-up "make" succeeded". This
> looks like an interdependency issue, but I don't know how to track it:
> 
>     GEN git-web--browse
>     GEN git-add--interactive
>     GEN git-difftool
> mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
> Verzeichnis nicht gefunden
> 
> (cannot stat "perl.mak")
This one sounds awfully familiar. Although I only encountered this if I specified `make -j15 clean all`, i.e. *both* "clean" and "all"...

Ciao, Dscho

John Keeping· Oct 6, 2015, 13:33 UTC · re: Johannes Schindelin · lore

Re: [BUG?] parallel make interdepencies

On Tue, Oct 06, 2015 at 03:13:05PM +0200, Johannes Schindelin wrote:
Show 16 quoted lines
> Hi Michael,
> 
> On 2015-10-06 10:12, Michael J Gruber wrote:
> > "make -j3" just errored out on me, a follow-up "make" succeeded". This
> > looks like an interdependency issue, but I don't know how to track it:
> > 
> >     GEN git-web--browse
> >     GEN git-add--interactive
> >     GEN git-difftool
> > mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
> > Verzeichnis nicht gefunden
> > 
> > (cannot stat "perl.mak")
> 
> This one sounds awfully familiar. Although I only encountered this if
> I specified `make -j15 clean all`, i.e. *both* "clean" and "all"...

I've seen something like this after upgrading perl (I can't remember the exact error, so it may not be the same problem but I'm pretty sure it involves perl.mak). The problem was a result of the perl library path changing, but I never got around to creating a patch.

I thought I remembered someone else posting a patch to address this, but I can't find it so perhaps I'm remembering commit 07981dc (Makefile: rebuild perl scripts when perl paths change, 2013-11-18).

Michael J Gruber· Oct 6, 2015, 14:24 UTC · re: John Keeping · lore

Re: [BUG?] parallel make interdepencies

John Keeping venit, vidit, dixit 06.10.2015 15:33:
Show 27 quoted lines
> On Tue, Oct 06, 2015 at 03:13:05PM +0200, Johannes Schindelin wrote:
>> Hi Michael,
>>
>> On 2015-10-06 10:12, Michael J Gruber wrote:
>>> "make -j3" just errored out on me, a follow-up "make" succeeded". This
>>> looks like an interdependency issue, but I don't know how to track it:
>>>
>>>     GEN git-web--browse
>>>     GEN git-add--interactive
>>>     GEN git-difftool
>>> mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
>>> Verzeichnis nicht gefunden
>>>
>>> (cannot stat "perl.mak")
>>
>> This one sounds awfully familiar. Although I only encountered this if
>> I specified `make -j15 clean all`, i.e. *both* "clean" and "all"...
> 
> I've seen something like this after upgrading perl (I can't remember the
> exact error, so it may not be the same problem but I'm pretty sure it
> involves perl.mak).  The problem was a result of the perl library path
> changing, but I never got around to creating a patch.
> 
> I thought I remembered someone else posting a patch to address this, but
> I can't find it so perhaps I'm remembering commit 07981dc (Makefile:
> rebuild perl scripts when perl paths change, 2013-11-18).
> 

At least I'm in good company, then. The statistical evidence is 100% clear: It's a John-related issue.

Michael J(ohannes)
Philip Oakley· Oct 6, 2015, 19:39 UTC · re: John Keeping · lore

Re: [BUG?] parallel make interdepencies

From: "John Keeping" <john@keeping.me.uk>
Show 26 quoted lines
> On Tue, Oct 06, 2015 at 03:13:05PM +0200, Johannes Schindelin wrote:
>> Hi Michael,
>>
>> On 2015-10-06 10:12, Michael J Gruber wrote:
>> > "make -j3" just errored out on me, a follow-up "make" succeeded". This
>> > looks like an interdependency issue, but I don't know how to track it:
>> >
>> >     GEN git-web--browse
>> >     GEN git-add--interactive
>> >     GEN git-difftool
>> > mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
>> > Verzeichnis nicht gefunden
>> >
>> > (cannot stat "perl.mak")
>>
>> This one sounds awfully familiar. Although I only encountered this if
>> I specified `make -j15 clean all`, i.e. *both* "clean" and "all"...
>
> I've seen something like this after upgrading perl (I can't remember the
> exact error, so it may not be the same problem but I'm pretty sure it
> involves perl.mak).  The problem was a result of the perl library path
> changing, but I never got around to creating a patch.
>
> I thought I remembered someone else posting a patch to address this, but
> I can't find it so perhaps I'm remembering commit 07981dc (Makefile:
> rebuild perl scripts when perl paths change, 2013-11-18).
This bug hit me when updating the MSVC-build script in contrib.

In a fully cleaned installation there is no PM.stamp file and the perl.mak file fails with a message that can easily be misunderstood. In my case I was doing a `make` dry run, so the rebuilding of the perlscrip list (commit 07981dc) never happened.

The wider patch series somehow never made it onto vger (don't know why) but the original is at https://groups.google.com/d/msg/msysgit/aj4v9ZpMIJo/2BA68P0saT0J

My fix was (expect whitesapace damage)
---
perl/Makefile | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/perl/Makefile b/perl/Makefile
index 15d96fc..5b86aac 100644
--- a/perl/Makefile
+++ b/perl/Makefile
@@ -22,7 +22,9 @@ clean:
  $(RM) $(makfile).old
  $(RM) PM.stamp

+ifneq (,$(wildcard PM.stamp))
 $(makfile): PM.stamp
+endif

 ifdef NO_PERL_MAKEMAKER
 instdir_SQ = $(subst ','\'',$(prefix)/lib)
-- 
2.4.2.windows.1.5.gd32afb6

--
Philip

← back to recent threads