Skip to content

valgrind: Disable parallel building#51082

Closed
srhb wants to merge 1 commit intoNixOS:staging-nextfrom
srhb:valgrind-race-fix
Closed

valgrind: Disable parallel building#51082
srhb wants to merge 1 commit intoNixOS:staging-nextfrom
srhb:valgrind-race-fix

Conversation

@srhb
Copy link
Contributor

@srhb srhb commented Nov 26, 2018

Motivation for this change

Valgrind appears to have a race condition with an unspecified dependency somewhere in the Makefile. I'll see about contacting upstream about this as well, but in the meantime, we can unblock ourselves.

#50876 (comment)

rm -f libcoregrind-amd64-linux.a
ar cru libcoregrind-amd64-linux.a libcoregrind_amd64_linux_a-m_addrinfo.o libcoregrind_amd64_linux_a-m_cache.o libcoregrind_amd64_linux_a-m_commandline.o libcoregrind_amd64_linux_a-m_compiler.o libcoregrind_amd64_linux_a-m_clientstate.o libcoregrind_amd64_linux_a-m_cpuid.o libcoregrind_amd64_linux_a-m_deduppoolalloc.o libcoregrind_amd64_linux_a-m_debuglog.o libcoregrind_amd64_linux_a-m_errormgr.o libcoregrind_amd64_linux_a-m_execontext.o libcoregrind_amd64_linux_a-m_hashtable.o libcoregrind_amd64_linux_a-m_libcbase.o libcoregrind_amd64_linux_a-m_libcassert.o libcoregrind_amd64_linux_a-m_libcfile.o libcoregrind_amd64_linux_a-m_libcprint.o libcoregrind_amd64_linux_a-m_libcproc.o libcoregrind_amd64_linux_a-m_libcsignal.o libcoregrind_amd64_linux_a-m_machine.o libcoregrind_amd64_linux_a-m_mallocfree.o libcoregrind_amd64_linux_a-m_options.o libcoregrind_amd64_linux_a-m_oset.o libcoregrind_amd64_linux_a-m_poolalloc.o libcoregrind_amd64_linux_a-m_rangemap.o libcoregrind_amd64_linux_a-m_redir.o libcoregrind_amd64_linux_a-m_sbprofile.o libcoregrind_amd64_linux_a-m_seqmatch.o libcoregrind_amd64_linux_a-m_signals.o libcoregrind_amd64_linux_a-m_sparsewa.o libcoregrind_amd64_linux_a-m_stacks.o libcoregrind_amd64_linux_a-m_stacktrace.o libcoregrind_amd64_linux_a-m_syscall.o libcoregrind_amd64_linux_a-m_threadstate.o libcoregrind_amd64_linux_a-m_tooliface.o libcoregrind_amd64_linux_a-m_trampoline.o libcoregrind_amd64_linux_a-m_translate.o libcoregrind_amd64_linux_a-m_transtab.o libcoregrind_amd64_linux_a-m_vki.o libcoregrind_amd64_linux_a-m_vkiscnums.o libcoregrind_amd64_linux_a-m_wordfm.o libcoregrind_amd64_linux_a-m_xarray.o libcoregrind_amd64_linux_a-m_xtree.o libcoregrind_amd64_linux_a-m_xtmemory.o libcoregrind_amd64_linux_a-m_aspacehl.o m_aspacemgr/libcoregrind_amd64_linux_a-aspacemgr-common.o m_aspacemgr/libcoregrind_amd64_linux_a-aspacemgr-linux.o m_aspacemgr/libcoregrind_amd64_linux_a-aspacemgr-segnames.o m_coredump/libcoregrind_amd64_linux_a-coredump-elf.o m_coredump/libcoregrind_amd64_linux_a-coredump-macho.o m_coredump/libcoregrind_amd64_linux_a-coredump-solaris.o m_debuginfo/libcoregrind_amd64_linux_a-misc.o m_debuginfo/libcoregrind_amd64_linux_a-d3basics.o m_debuginfo/libcoregrind_amd64_linux_a-debuginfo.o m_debuginfo/libcoregrind_amd64_linux_a-image.o m_debuginfo/libcoregrind_amd64_linux_a-minilzo-inl.o m_debuginfo/libcoregrind_amd64_linux_a-readdwarf.o m_debuginfo/libcoregrind_amd64_linux_a-readdwarf3.o m_debuginfo/libcoregrind_amd64_linux_a-readelf.o m_debuginfo/libcoregrind_amd64_linux_a-readexidx.o m_debuginfo/libcoregrind_amd64_linux_a-readmacho.o m_debuginfo/libcoregrind_amd64_linux_a-readpdb.o m_debuginfo/libcoregrind_amd64_linux_a-storage.o m_debuginfo/libcoregrind_amd64_linux_a-tinfl.o m_debuginfo/libcoregrind_amd64_linux_a-tytypes.o m_demangle/libcoregrind_amd64_linux_a-cp-demangle.o m_demangle/libcoregrind_amd64_linux_a-cplus-dem.o m_demangle/libcoregrind_amd64_linux_a-demangle.o m_demangle/libcoregrind_amd64_linux_a-dyn-string.o m_demangle/libcoregrind_amd64_linux_a-d-demangle.o m_demangle/libcoregrind_amd64_linux_a-rust-demangle.o m_demangle/libcoregrind_amd64_linux_a-safe-ctype.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-x86-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-amd64-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-ppc32-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-ppc64be-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-ppc64le-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-arm-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-arm64-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-s390x-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-mips32-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-mips64-linux.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-x86-darwin.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-amd64-darwin.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-x86-solaris.o m_dispatch/libcoregrind_amd64_linux_a-dispatch-amd64-solaris.o m_gdbserver/libcoregrind_amd64_linux_a-inferiors.o m_gdbserver/libcoregrind_amd64_linux_a-m_gdbserver.o m_gdbserver/libcoregrind_amd64_linux_a-regcache.o m_gdbserver/libcoregrind_amd64_linux_a-remote-utils.o m_gdbserver/libcoregrind_amd64_linux_a-server.o m_gdbserver/libcoregrind_amd64_linux_a-signals.o m_gdbserver/libcoregrind_amd64_linux_a-target.o m_gdbserver/libcoregrind_amd64_linux_a-utils.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-x86.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-amd64.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-arm.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-arm64.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-ppc32.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-ppc64.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-s390x.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-mips32.o m_gdbserver/libcoregrind_amd64_linux_a-valgrind-low-mips64.o m_gdbserver/libcoregrind_amd64_linux_a-version.o m_initimg/libcoregrind_amd64_linux_a-initimg-linux.o m_initimg/libcoregrind_amd64_linux_a-initimg-darwin.o m_initimg/libcoregrind_amd64_linux_a-initimg-solaris.o m_initimg/libcoregrind_amd64_linux_a-initimg-pathscan.o m_mach/libcoregrind_amd64_linux_a-mach_basics.o m_mach/libcoregrind_amd64_linux_a-mach_msg.o m_mach/libcoregrind_amd64_linux_a-mach_traps-x86-darwin.o m_mach/libcoregrind_amd64_linux_a-mach_traps-amd64-darwin.o m_replacemalloc/libcoregrind_amd64_linux_a-replacemalloc_core.o m_scheduler/libcoregrind_amd64_linux_a-sched-lock.o m_scheduler/libcoregrind_amd64_linux_a-sched-lock-generic.o m_scheduler/libcoregrind_amd64_linux_a-scheduler.o m_scheduler/libcoregrind_amd64_linux_a-sema.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-common.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-x86-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-amd64-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-ppc32-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-ppc64-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-arm-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-arm64-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-s390x-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-mips32-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-mips64-linux.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-x86-darwin.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-amd64-darwin.o m_sigframe/libcoregrind_amd64_linux_a-sigframe-solaris.o m_syswrap/libcoregrind_amd64_linux_a-syscall-x86-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-amd64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-ppc32-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-ppc64be-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-ppc64le-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-arm-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-arm64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-s390x-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-mips32-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-mips64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syscall-x86-darwin.o m_syswrap/libcoregrind_amd64_linux_a-syscall-amd64-darwin.o m_syswrap/libcoregrind_amd64_linux_a-syscall-x86-solaris.o m_syswrap/libcoregrind_amd64_linux_a-syscall-amd64-solaris.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-main.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-generic.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-linux-variants.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-darwin.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-solaris.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-x86-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-amd64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-ppc32-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-ppc64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-arm-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-arm64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-s390x-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-mips32-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-mips64-linux.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-x86-darwin.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-amd64-darwin.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-xen.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-x86-solaris.o m_syswrap/libcoregrind_amd64_linux_a-syswrap-amd64-solaris.o m_ume/libcoregrind_amd64_linux_a-elf.o m_ume/libcoregrind_amd64_linux_a-macho.o m_ume/libcoregrind_amd64_linux_a-main.o m_ume/libcoregrind_amd64_linux_a-script.o m_scheduler/libcoregrind_amd64_linux_a-ticket-lock-linux.o   libnolto_coregrind_amd64_linux_a-m_libcsetjmp.o libnolto_coregrind_amd64_linux_a-m_main.o
ar: `u' modifier ignored since `D' is the default (see `U')
ar: libnolto_coregrind_amd64_linux_a-m_main.o: No such file or directory
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@GrahamcOfBorg GrahamcOfBorg added 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. labels Nov 26, 2018
@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: valgrind

Partial log (click to expand)

gzipping man pages under /nix/store/sw0rik60sm37gj6izs40wkrid7zx2j4y-valgrind-3.14.0-man/share/man/
patching script interpreter paths in /nix/store/sw0rik60sm37gj6izs40wkrid7zx2j4y-valgrind-3.14.0-man
checking for references to /build/ in /nix/store/sw0rik60sm37gj6izs40wkrid7zx2j4y-valgrind-3.14.0-man...
shrinking RPATHs of ELF executables and libraries in /nix/store/kmbzkkm8rf62csd35ckk1vg3f3b56j79-valgrind-3.14.0-doc
patching script interpreter paths in /nix/store/kmbzkkm8rf62csd35ckk1vg3f3b56j79-valgrind-3.14.0-doc
checking for references to /build/ in /nix/store/kmbzkkm8rf62csd35ckk1vg3f3b56j79-valgrind-3.14.0-doc...
shrinking RPATHs of ELF executables and libraries in /nix/store/wdmzjz5wz14vb4mw24wlsclqzyhxsw3d-valgrind-3.14.0-debug
patching script interpreter paths in /nix/store/wdmzjz5wz14vb4mw24wlsclqzyhxsw3d-valgrind-3.14.0-debug
checking for references to /build/ in /nix/store/wdmzjz5wz14vb4mw24wlsclqzyhxsw3d-valgrind-3.14.0-debug...
/nix/store/rmzzzsbbgav3xj5hlk3rjf8fx6249dsk-valgrind-3.14.0

@GrahamcOfBorg
Copy link

Success on x86_64-darwin (full log)

Attempted: valgrind

Partial log (click to expand)

/nix/store/1wdn511byc3zzqi47v9kyw2zj7ryjc9n-valgrind-3.14.0/bin/callgrind_control: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/qsihc3zr098a4kjvvk8zaawpvpi7yzxk-perl-5.28.0/bin/perl -w"
strip is /nix/store/fsirl1jzjb31850n0zd5navr9ahrf936-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/9jgpxdj4n1pw3l21vnzm4ibm49vs3jf4-valgrind-3.14.0-dev/lib
patching script interpreter paths in /nix/store/9jgpxdj4n1pw3l21vnzm4ibm49vs3jf4-valgrind-3.14.0-dev
gzipping man pages under /nix/store/lysd5wbbc27y0x3kxczrw8w0ncafy9mq-valgrind-3.14.0-man/share/man/
strip is /nix/store/fsirl1jzjb31850n0zd5navr9ahrf936-cctools-binutils-darwin/bin/strip
patching script interpreter paths in /nix/store/lysd5wbbc27y0x3kxczrw8w0ncafy9mq-valgrind-3.14.0-man
strip is /nix/store/fsirl1jzjb31850n0zd5navr9ahrf936-cctools-binutils-darwin/bin/strip
patching script interpreter paths in /nix/store/smj7mbbwln3asji5f98l171hsgfj1xhn-valgrind-3.14.0-doc
/nix/store/1wdn511byc3zzqi47v9kyw2zj7ryjc9n-valgrind-3.14.0

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: valgrind

Partial log (click to expand)

shrinking RPATHs of ELF executables and libraries in /nix/store/qwzyvzn728za7ais2hg0pp75k0rbpbz1-valgrind-3.14.0-man
gzipping man pages under /nix/store/qwzyvzn728za7ais2hg0pp75k0rbpbz1-valgrind-3.14.0-man/share/man/
patching script interpreter paths in /nix/store/qwzyvzn728za7ais2hg0pp75k0rbpbz1-valgrind-3.14.0-man
checking for references to /build/ in /nix/store/qwzyvzn728za7ais2hg0pp75k0rbpbz1-valgrind-3.14.0-man...
shrinking RPATHs of ELF executables and libraries in /nix/store/rcbswfn0in1gs45wdmh32l6p74rzq91h-valgrind-3.14.0-doc
patching script interpreter paths in /nix/store/rcbswfn0in1gs45wdmh32l6p74rzq91h-valgrind-3.14.0-doc
checking for references to /build/ in /nix/store/rcbswfn0in1gs45wdmh32l6p74rzq91h-valgrind-3.14.0-doc...
shrinking RPATHs of ELF executables and libraries in /nix/store/1f4ah7bi0rz5hmcmz9wzr3v4f3b7hwih-valgrind-3.14.0-debug
patching script interpreter paths in /nix/store/1f4ah7bi0rz5hmcmz9wzr3v4f3b7hwih-valgrind-3.14.0-debug
checking for references to /build/ in /nix/store/1f4ah7bi0rz5hmcmz9wzr3v4f3b7hwih-valgrind-3.14.0-debug...

@delroth
Copy link
Contributor

delroth commented Nov 27, 2018

LGTM, I've tracked down the issue earlier today to a bug either in automake or how valgrind thinks automake works, and disabling parallel building should improve things in the meantime (from my limited understanding of the problem).

@delroth
Copy link
Contributor

delroth commented Nov 27, 2018

Oh hey, actually, it's fixed upstream: https://sourceware.org/git/?p=valgrind.git;a=commit;h=7820fc268fae4353118b6355f1d4b9e1b7eeebec

Should we instead cherry-pick this and keep parallel building?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants