Re: preparing for a new release
Gavin Smith <[email protected]>
| Newsgroups | gmane.comp.sysutils.automake.patches |
|---|---|
| Message-ID | <CAKPWYQ2oJAKaouwtTfpxA28WODoK6i5ComC8zJ=CY5fK=GPkWQ@mail.gmail.com> |
On Sun, Nov 15, 2020 at 7:39 PM Gavin Smith <[email protected]> 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.
log
(application/octet-stream, 124.3 KB) - not displayed