Date: Wed, 14 Feb 2018 18:43:23 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 225899] devel/gmake: parallel builds sometimes deadlock Message-ID: <bug-225899-13@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D225899 Bug ID: 225899 Summary: devel/gmake: parallel builds sometimes deadlock Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Keywords: patch Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: tijl@FreeBSD.org Reporter: truckman@FreeBSD.org Attachment #190630 maintainer-approval? Flags: Assignee: tijl@FreeBSD.org Flags: maintainer-feedback?(tijl@FreeBSD.org) Created attachment 190630 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D190630&action= =3Dedit upstream patch to fix gmake jobserver hang when using pselect() I have ALLOW_MAKE_JOBS=3Dyes in poudriere.conf on my package build machine.= I see infrequent, random build runaway failures for different ports, where the thing that they all have in common is that the leftover leaf processes are always gmake in some sort of wait state, and each gmake process has one or = more zombie child processes. December 2016 - 10-STABLE jail: USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 76087 0.0 0.0 9132 1336 0 I+J 8:51AM 0:00.04 /usr/bin/make -C /usr/p orts/multimedia/gstreamer-plugins-good build root 76113 0.0 0.0 14680 1896 0 I+J 8:51AM 0:00.01 - gmake -f Makefile -j8 DESTDIR=3D/wrkdirs/usr/ports/multimedia/gstreamer-plugins-good/work/stage = all root 76129 0.0 0.0 14680 1916 0 I+J 8:51AM 0:00.01 |-- gmake -C videofilte r root 76148 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.59 | `-- <defunct> root 76156 0.0 0.0 14680 1968 0 I+J 8:51AM 0:00.01 |-- gmake -C audio= fx root 76625 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.34 | `-- <defunct> root 76164 0.0 0.0 14680 1912 0 I+J 8:51AM 0:00.01 |-- gmake -C audioparse rs root 78664 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.43 | `-- <defunct> root 77796 0.0 0.0 14680 1948 0 I+J 8:51AM 0:00.01 |-- gmake -C debugutils root 78663 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.00 | `-- <defunct> root 78193 0.0 0.0 14680 1920 0 I+J 8:51AM 0:00.01 |-- gmake -C deinterlac e root 78232 0.0 0.0 14680 1952 0 I+J 8:51AM 0:00.01 | `-- gmake all-am root 78566 0.0 0.0 0 0 0 Z+J 8:51AM 0:01.45 | `-- <defunct> root 78681 0.0 0.0 14680 1940 0 I+J 8:51AM 0:00.01 |-- gmake -C effec= tv root 78819 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.28 | `-- <defunct> root 78830 0.0 0.0 14680 1916 0 I+J 8:51AM 0:00.01 |-- gmake -C equal= izer root 78834 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.43 | `-- <defunct> root 78952 0.0 0.0 14680 1912 0 I+J 8:51AM 0:00.01 `-- gmake -C flv root 79075 0.0 0.0 0 0 0 Z+J 8:51AM 0:00.00 `-- <defunct> September 2017 - 12-CURRENT jail: USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 8279 0.0 0.0 10832 0 1 IW+J - 0:00.00 /usr/bin/make -C /usr/ ports/editors/openoffice-devel build root 8550 0.0 0.0 24852 0 1 IW+J - 0:00.00 - perl -S /wrkdirs/usr /ports/editors/openoffice-devel/work/aoo-4.2.0/main/solenv/bin/build.pl --a= ll -P 2 -- -P4 root 64577 0.0 0.0 24852 0 1 IW+J - 0:00.00 `-- perl -S /wrkdirs/u sr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solenv/bin/build.pl -= -all -P2 -- -P4 root 64578 0.0 0.0 11700 0 1 IW+J - 0:00.00 `-- dmake -P4 root 64583 0.0 0.0 12688 0 1 IW+J - 0:00.00 `-- /usr/local/bin /bash -c cd .. && gmake -r -j4 && gmake -r deliverlog root 64584 0.0 0.1 53556 44532 1 I+J 20:32 0:29.23 `-- gmake -r -j4 root 30217 0.0 0.0 0 0 1 Z+J 20:49 0:00.01 |-- <defu= nct> root 30220 0.0 0.0 0 0 1 Z+J 20:49 0:00.01 |-- <defu= nct> root 30234 0.0 0.0 0 0 1 Z+J 20:49 0:00.01 |-- <defu= nct> root 30236 0.0 0.0 0 0 1 Z+J 20:49 0:00.01 `-- <defu= nct> USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND nobody 43355 0.0 0.0 10500 1596 1 I+J 11:09 0:00.05 /usr/bin/make -C /usr/ports/lang/rust build nobody 43444 0.0 0.1 46368 36944 1 I+J 11:09 0:07.20 - /usr/local/bin/python2.7 /wrkdirs/usr/ports/lang/rust/work/rustc-1.23.0-src/x.py build --verbose --config ./config.toml --jobs 7 nobody 71768 0.0 0.0 25436 11536 1 I+J 11:10 0:00.21 `-- /wrkdirs/usr/ports/lang/rust/work/rustc-1.23.0-src/build/bootstrap/debug/bo= otstrap build --verbose --config ./config.toml --jobs 7 nobody 9694 0.0 0.0 23260 13172 1 I+J 11:14 0:00.01 `-- cmake --b= uild . --target install --config Release -- -j 7 nobody 9746 0.0 0.0 11976 2412 1 I+J 11:14 0:00.01 `-- /usr/local/bin/gmake -j 7 install nobody 9784 0.0 0.0 12624 3292 1 I+J 11:14 0:00.08 `-- /usr/local/bin/gmake -f CMakeFiles/Makefile2 all nobody 9539 0.0 0.0 11976 2404 1 I+J 11:16 0:00.02 |-- /usr/local/bin/gmake -f lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/build.make lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/build nobody 10364 0.0 0.0 0 0 1 Z+J 11:17 0:02.12 | `-- <defunct> nobody 10119 0.0 0.0 11908 2264 1 I+J 11:14 0:00.01 |-- /usr/local/bin/gmake -f lib/TableGen/CMakeFiles/LLVMTableGen.dir/build.make lib/TableGen/CMakeFiles/LLVMTableGen.dir/build nobody 10231 0.0 0.0 0 0 1 Z+J 11:14 0:00.95 | `-- <defunct> nobody 10420 0.0 0.0 12020 2524 1 I+J 11:14 0:00.02 |-- /usr/local/bin/gmake -f lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/build.m= ake lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/build nobody 9353 0.0 0.0 0 0 1 Z+J 11:16 0:00.86 | `-- <defunct> nobody 10667 0.0 0.0 12476 2800 1 I+J 11:14 0:00.03 |-- /usr/local/bin/gmake -f lib/Support/CMakeFiles/LLVMSupport.dir/build.make lib/Support/CMakeFiles/LLVMSupport.dir/build nobody 10766 0.0 0.0 0 0 1 Z+J 11:14 0:04.21 | `-- <defunct> nobody 10726 0.0 0.0 12120 2576 1 I+J 11:14 0:00.03 |-- /usr/local/bin/gmake -f utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/build.make utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/build nobody 9446 0.0 0.0 0 0 1 Z+J 11:16 0:03.01 | `-- <defunct> nobody 10743 0.0 0.0 12140 2652 1 I+J 11:14 0:00.04 |-- /usr/local/bin/gmake -f lib/MC/CMakeFiles/LLVMMC.dir/build.make lib/MC/CMakeFiles/LLVMMC.dir/build nobody 10795 0.0 0.0 0 0 1 Z+J 11:14 0:02.35 | `-- <defunct> nobody 10790 0.0 0.0 12412 2828 1 I+J 11:17 0:00.05 `-- /usr/local/bin/gmake -f lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/build.make lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/build nobody 17155 0.0 0.0 0 0 1 Z+J 11:17 0:00.01 `-- <defunct> This turns out to be a known bug in the jobserver code when it is configure= d to use pselect(). It has been patched upstream, but a version of gmake with t= his fix has not yet been released. See: https://savannah.gnu.org/bugs/?49014 https://savannah.gnu.org/bugs/?51159 --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-225899-13>