Opened 4 years ago

Last modified 4 years ago

#22435 new defect

Random build failure in pynac

Reported by: vbraun Owned by:
Priority: major Milestone: sage-7.6
Component: symbolics Keywords: random_fail
Cc: rws Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:


Making install in ginac
make[4]: Entering directory `/home/buildbot/slave/sage_git/build/local/var/tmp/sage/build/pynac-0.7.4/src/ginac'
make[5]: Entering directory `/home/buildbot/slave/sage_git/build/local/var/tmp/sage/build/pynac-0.7.4/src/ginac'
 /bin/mkdir -p '/home/buildbot/slave/sage_git/build/local/include/pynac'
/bin/sh: 3:   if test -f $p; then \: not found
/bin/sh: 4:     list2="$list2 $p"; \: not found
/bin/sh: 5:   else :; fi; \: not found
/bin/sh: 6: done; \: not found
/bin/sh: 7: test -z "$list2" || { \: not found
/bin/sh: 8:   echo " /bin/mkdir -p '/home/buildbot/slave/sage_git/build/local/lib'"; \: not found
/bin/sh: 9:   /bin/mkdir -p "/home/buildbot/slave/sage_git/build/local/lib" || exit 1; \: not found
/bin/sh: 10:   echo " /bin/bash ../libtool   --mode=install /usr/bin/install -c  $list2 '/home/buildbot/slave/sage_git/build/local/lib'"; \: not found
/bin/sh: 11:   /bin/bash ../libtool   --mode=install /usr/bin/install -c  $list2 "/home/buildbot/slave/sage_git/build/local/lib"; \: not found
/bin/sh: 12: }: not found
make[5]: *** [install-libLTLIBRARIES] Error 127
make[5]: Target `install-exec-am' not remade because of errors.
 /usr/bin/install -c -m 644 ginac.h py_funcs.h add.h archive.h assertion.h basic.h class_info.h clifford.h constant.h infinity.h container.h ex.h expair.h expairseq.h exprseq.h fail.h fderivative.h flags.h function.h idx.h indexed.h inifcns.h integral.h lst.h matrix.h mpoly.h mul.h ncmul.h normal.h numeric.h operators.h power.h print.h pseries.h ptr.h registrar.h relational.h extern_templates.h symbol.h symmetry.h '/home/buildbot/slave/sage_git/build/local/include/pynac'
 /usr/bin/install -c -m 644 tensor.h version.h wildcard.h order.h templates.h infoflagbase.h assume.h upoly.h useries.h useries-flint.h sum.h '/home/buildbot/slave/sage_git/build/local/include/pynac'
make[5]: Leaving directory `/home/buildbot/slave/sage_git/build/local/var/tmp/sage/build/pynac-0.7.4/src/ginac'
make[4]: *** [install-am] Error 2
make[4]: Target `install' not remade because of errors.

Change History (7)

comment:1 Changed 4 years ago by vbraun

  • Keywords random_fail added

comment:2 Changed 4 years ago by rws

The lines with : not found at the end are where in a normal install I can see this line: /bin/sh ../libtool --mode=install /usr/bin/install -c '/home/ralf/sage/local/lib', so presumably this has something to do with libtool?

comment:3 Changed 4 years ago by rws

I think the : not found comes from the find command getting its argument(s) from a backtick expansion, but that the expansion does not yield file names but lines of a script. The script looks like the content of the install-libLTLIBRARIES target code starting from its 3rd line. Something like this should not happen(tm), and even more, not sporadically.

comment:4 Changed 4 years ago by rws

In summary I think this is a rare problem with GNU make. At least there were no recent Pynac changes that can even potentially trigger such behaviour.

comment:5 Changed 4 years ago by jdemeyer

Does this happen on one particular system or several systems?

It seems to me indeed a strange problem with either make or sh. Somehow the shell commands are totally misparsed. First of all, since we get an error message for every individual line, the backslash-newline escaping doesn't work. Then it also seems like the whole line is interpreted as 1 command: the shell is literally trying to run the single program if test -f $p; then \ instead of parsing it as code.

comment:6 Changed 4 years ago by vbraun

So far I've only observed it once.

What about the

make[4]: Entering directory `/home/buildbot/slave/sage_git/build/local/var/tmp/sage/build/pynac-0.7.4/src/ginac'
make[5]: Entering directory `/home/buildbot/slave/sage_git/build/local/var/tmp/sage/build/pynac-0.7.4/src/ginac'

It seems that there are two parallel make processes in the ginac subdirectory; If one is writing the install-libLTLIBRARIES script while the other is executing it the observed error could easily happen.

comment:7 Changed 4 years ago by rws

What normally seems to happen is that make "puts a child on the chain" to remake the target (output snippet from make -d):

   Finished prerequisites of target file 'install-libLTLIBRARIES'.
  Must remake target 'install-libLTLIBRARIES'.
make[2]: Entering directory '/home/ralf/sage/pynac/ginac'
Putting child 0x23c1f50 (install-libLTLIBRARIES) PID 29581 on the chain.
Live child 0x23c1f50 (install-libLTLIBRARIES) PID 29581 
 /usr/bin/mkdir -p '/usr/local/lib64'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c '/usr/local/lib64'
Note: See TracTickets for help on using tickets.