Gentoo Archives: gentoo-portage-dev

From: Joshua Kinard <kumba@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] dead emerge processes and/or lockfiles
Date: Mon, 25 Apr 2016 00:37:07
Message-Id: 571D66A9.6070407@gentoo.org
In Reply to: Re: [gentoo-portage-dev] dead emerge processes and/or lockfiles by Joshua Kinard
1 On 04/24/2016 20:21, Joshua Kinard wrote:
2 > On 04/24/2016 20:09, Zac Medico wrote:
3 >> On 04/24/2016 04:50 PM, Joshua Kinard wrote:
4 >>> On 01/18/2016 07:37, Joshua Kinard wrote:
5 >>>> On 01/17/2016 15:01, Zac Medico wrote:
6 >>>>> On 01/17/2016 09:06 AM, Brian Dolbec wrote:
7 >>>>>>
8 >>>>>> I've read in several forum posts lately about emerge not running and
9 >>>>>> the problem comes down to dead emerge processes and remaining lockfiles.
10 >>>>>>
11 >>>>>> Perhaps we should make an emaint module to search for and fix these.
12 >>>>>> It should be easy enough.
13 >>>>>
14 >>>>> It would be nicer if we fixed whatever issue(s) cause the emerge
15 >>>>> processes to hang up. How would the emaint module distinguish a "good"
16 >>>>> emerge process from a "bad" one? I suppose you could strace it to see if
17 >>>>> it has any activity.
18 >>>>>
19 >>>>
20 >>>> I've been playing around with Gentoo/FreeBSD and have been noticing that emerge
21 >>>> is leaving orphaned processes behind on that platform. Seems to be
22 >>>> ecompressdir getting hung up. emerge itself just moves on, but after I
23 >>>> accumulated ~5 of those stuck ecompressdir processes in a single run, I kill
24 >>>> -9'ed them all. Didn't see side-effects similar to what's described in the
25 >>>> original post, but the way to detect this issue might be to look for orphaned
26 >>>> children processes lacking a parent PID, then reap them.
27 >>>
28 >>>
29 >>> Updating my FreeBSD VM again, I captured one of the error messages that's
30 >>> leading to these orphaned ecompressdir processes:
31 >>>
32 >>> /usr/lib/portage/python3.5/ebuild-helpers/ecompressdir: cannot make pipe for
33 >>> process substitution: File exists
34 >>> /usr/lib/portage/python3.5/ebuild-helpers/ecompressdir: line 72:
35 >>> /ramfs/portage/sys-freebsd/boot0-10.3/temp/sh-np-1865519000: ambiguous redirect
36 >>> ecompressdir: bzip2 -9 /usr/share/man
37 >>> * The ebuild phase 'install' with pid 32075 appears to have left an orphan
38 >>> * process running in the background.
39 >>>
40 >>>
41 >>> And a second one:
42 >>> /ramfs/portage/._portage_reinstall_.pesqhjhn/bin/ebuild-helpers/ecompressdir:
43 >>> cannot make pipe for process substitution: File exists
44 >>> /ramfs/portage/._portage_reinstall_.pesqhjhn/bin/ebuild-helpers/ecompressdir:
45 >>> line 72: /ramfs/portage/sys-apps/grep-2.25/temp/sh-np-474708936: ambiguous redirect
46 >>> ecompressdir: bzip2 -9 /usr/share/man
47 >>> ecompressdir: bzip2 -9 /usr/share/info
48 >>> ecompressdir: bzip2 -9 /usr/share/doc
49 >>> * The ebuild phase 'install' with pid 60185 appears to have left an orphan
50 >>> * process running in the background.
51 >>>
52 >>> Not sure the exact cause. Any additional info I can provide?
53 >>>
54 >>> --J
55 >>
56 >> Looks like a problem with bash. Make sure your bash has the fix for this
57 >> issue:
58 >>
59 >> https://bugs.gentoo.org/show_bug.cgi?id=447810
60 >>
61 >> What version of bash is it? Maybe try some other versions.
62 >
63 > Latest version in ~arch, bash-4.3_p42-r2.
64 >
65 > Doesn't appear to be completely tied to FreeBSD, either, as there's this
66 > unanswered topic on the forums from Nov 2015:
67 > https://forums-lb.gentoo.org/viewtopic-t-1032574.html?sid=5d7566d09a49ba06124032598d3ad362
68 >
69 > Just looks like FreeBSD trips it up far more often, as I've only seen it there.
70 >
71 > --J
72
73 Took some more digging, but here's our bug for it. Does appear to be mostly
74 FreeBSD-related:
75 https://bugs.gentoo.org/show_bug.cgi?id=574426
76
77 Doesn't answer the question of how it happened in that one Linux case, but w/o
78 additional information, sounds like it's a remote corner case on Linux and hard
79 to reproduce.
80
81 --J