automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: preparing for a new release


From: Gavin Smith
Subject: Re: preparing for a new release
Date: Sun, 15 Nov 2020 20:17:43 +0000

On Sun, Nov 15, 2020 at 7:39 PM Gavin Smith <gavinsmith0123@gmail.com> wrote:
>
> On Sun, Nov 15, 2020 at 09:45:44AM -0800, Jim Meyering wrote:
> > I've fixed a few of these failures, but here is still at least one
> > that I have not fixed: t/txinfo-no-clutter. In this case, running it
> > with no parallelism and by itself passes:
> >   make -k check TESTS='t/txinfo-no-clutter'
> > Yet running it with parallel make fails (I'm using make-4.3.90 built
> > from git, in case it matters):
> >   make -k check TESTS='t/txinfo-no-clutter' AM_TESTSUITE_MAKE="make
> > -j$(( 2*$(nproc) + 1 ))"
> >
> > Not sure I'll work more on this today, so sharing: The attached log
> > shows that this fails when building that test's final "all" rule,
> > often because a .dvi file could not be found:
> >
> > ) localization,mv: cannot stat 'bar.dvi': No such file or directory
>
> My suspicion is that it is interference between the dvi and ps targets.
> When I remove the ps targets with the change at the bottom of this email,
> the test passes every time.  The ps file is made from the dvi file so
> perhaps the ps rules are deleting the dvi file while the dvi rules are
> still using it, or vice versa.

What I've done is run the test, then change to the directory where the
test was run, run "make -j5 distcheck" again, and then change to the
build directory for the distcheck, and simply run "make -j5 -d |& tee
log". (This is now in the directory
t/txinfo-no-clutter.dir/txinfo-no-clutter-1.0/_build/sub)

The log file shows that two processes are being spawned to generate
foo.dvi. I guess the big question is why is the second process spawned
when the first one is still going. I hope this helps (I don't have any
experience debugging parallel makes.)

$ grep 'foo\.dvi\|26519\|26523' log
  Considering target file 'foo.dvi'.
   File 'foo.dvi' does not exist.
   Looking for an implicit rule for 'foo.dvi'.
   Found an implicit rule for 'foo.dvi'.
   Finished prerequisites of target file 'foo.dvi'.
  Must remake target 'foo.dvi'.
texi2dvi  --build-dir=foo.t2d -o foo.dvi  \
Putting child 0x55c0b8cd63d0 (foo.dvi) PID 26519 on the chain.
  Recipe of 'foo.dvi' is being run.
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
   Trying implicit prerequisite 'foo.dvi'.
    Considering target file 'foo.dvi'.
     File 'foo.dvi' does not exist.
     Looking for an implicit rule for 'foo.dvi'.
     Found an implicit rule for 'foo.dvi'.
     Finished prerequisites of target file 'foo.dvi'.
    Must remake target 'foo.dvi'.
texi2dvi  --build-dir=foo.t2d -o foo.dvi  \
Putting child 0x5585d7695590 (foo.dvi) PID 26523 on the chain.
    Recipe of 'foo.dvi' is being run.
Live child 0x5585d7695590 (foo.dvi) PID 26523
Live child 0x5585d7695590 (foo.dvi) PID 26523
Output written on foo.dvi (1 page, 256 bytes).
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Live child 0x55c0b8cd63d0 (foo.dvi) PID 26519
Reaping winning child 0x55c0b8cd63d0 PID 26519
Removing child 0x55c0b8cd63d0 PID 26519 from chain.
Live child 0x5585d7695590 (foo.dvi) PID 26523
Reaping losing child 0x5585d7695590 PID 26523
Makefile:411: recipe for target 'foo.dvi' failed
make[2]: *** [foo.dvi] Error 1
Removing child 0x5585d7695590 PID 26523 from chain.
  Considering target file 'foo.dvi'.
  File 'foo.dvi' was considered already.

Attachment: log
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]