Python: use -j1 for makeinstall_host #1392
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While building
Python:host
on a heavily loaded system (ie. a system concurrently building several builds - FX-8350, 8 cores) I will occasionally experience one of two errors during Pythonmakeinstall_host
:file too short
Bus error (core dumped)
Based on repeated testing[1], there is about a 1-in-13 chance of either error occurring - sometimes
Python:host
will fail after 6 or 7 attempts, and never more than 13 attempts. When building 6 concurrent builds this means there is at most a 1-in-2 chance of all 6 builds succeeding.Error #2 is more common than error #1, but both errors always occur in exactly the same place, ie. they are repeatable, and I see these errors only with
Python:host
(I don't see these errors with any other package), which suggests it is not a CPU/RAM/hardware issue.By adding
-j1
tomakeinstall_host
I have now repeatedly builtPython:host
on a heavily loaded system over 50 times without failure. The addition of-j1
does not significantly increase the build time.[1] Test procedure
In one LE repository, repeatedly build
Python:host
(my system has 8 cores/threads, so basically-j8
here):and in another completely separate LE repository, concurrently build multiple LE projects (just to stress the system - ie. max out CPU, IO, RAM etc.). In my case all projects were clean, so only the "INSTALL" steps and
mksquashfs
were performed but this is enough to keep the system "busy" while building 6 concurrent projects (RPi/RPi2/Generic, without and without DEBUG).Eventually, the
Python:host
build will fail (unless-j1
is added).