[Toybox] [toybox] 0.7.0: scripts/make.sh: line 270: wait: pid XYZ is not a child of this shell (#24)

Nicolas Boichat drinkcat at chromium.org
Thu Feb 25 22:31:27 PST 2016


On Fri, Feb 26, 2016 at 1:53 PM, Rob Landley <notifications at github.com>
wrote:

> I prefer dealing with this sort of thing through the mailing list, I
> only really use github as repository hosting.
>

Oh, sorry, adding the list to this reply.


> On 02/25/2016 01:31 AM, drinkcat wrote:
> > We use toybox-0.7.0 as part of the Chromium OS project, and sometimes
> > hit an issue when building it on our automated builders (see this issue
> > <https://bugs.chromium.org/p/chromium/issues/detail?id=584542>):
> >
> > |toybox-0.7.0: armv7a-cros-linux-gnueabi-gcc -O2 -O2 -pipe -march=armv7-a
> > -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -g -fno-exceptions
> > -fno-unwind-tables -fno-asynchronous-unwind-tables -clang-syntax
> > -funsigned-char -Wno-string-plus-int -I . -Os -ffunction-sections
> > -fdata-sections -fno-asynchronous-unwind-tables -fno-strict-aliasing -c
> > toys/posix/tail.c -o generated/obj/tail.o toybox-0.7.0: scripts/make.sh:
> > line 270: wait: pid 8477 is not a child of this shell toybox-0.7.0:
>
> Hmmm... PID wrap, maybe?
>

That's what we were wondering about... The builder is building a lot of
other packages at the same time, including Chromium, so it's not unlikely
that the PID space is saturated... Also, the builder retries after the
first failure, and the second try always works (probably when the builder
is less busy...)


> > Looking at the code (|script/make.sh|), we are wondering about your use
> > of |$(jobs -rp)|. Wouldn't it be more correct to add jobs to PENDING
> > using |$!| right after you launch the job (|do_loudly|)?
>
> If you think that'll help, I'm happy to give it a try, sure.
>

I have a commit ready here, that appears to fix the problem:
https://github.com/drinkcat/toybox/commit/4c705620d73e3e9c12a3be54dc5d2efda939241a

It's a little less aggressive at parallelizing, as it always waits for the
first PID if PENDING is full (instead of refreshing the PENDING list every
time)...

I guess that you prefer I send the patch to the list? Or is a github PR
fine too?

Thanks!

Best,

Nicolas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20160226/62ec178e/attachment-0003.htm>


More information about the Toybox mailing list