On Tue, Mar 22, 2022 at 12:55:48PM -0400, Prarit Bhargava wrote:
Hey everyone,
This issue was found in centos-stream-9 when I backported the parallel
config processing code into that codebase. I can reproduce it on my desktop
but do not have enough Makefile-fu to figure out why this happens. I do see
a very similar error [1] reported so I suspect that I've exposed a race
rather than caused one.
The error which originally popped up for s390x here:
https://gitlab.com/redhat/red-hat-ci-tools/kernel/cki-internal-pipelines/...
can be reproduced on the command line here:
http://pastebin.test.redhat.com/1038965
Any help on this would be appreciated,
I have zero Makefile-fu :), but ...
each config target depends on scripts_basic[a]
%config: outputmakefile scripts_basic FORCE
which is actually compilation of fixdep.
IIUC process_config(), which is running in parallel, is calling listnewconfig target.
Meaning several processes are trying to build fixdep and some instances
fail to write it, because it's already running. Hence the "Text file busy".
I can get the same error when running just
$ for i in $(seq 1 10); do make V=1 scripts_basic & done
I think running "make scripts_basic" before starting the parallel
processing of configs should help. Meaning the fixdep would be compiled
beforehand.
Just my $0.02
[a]
https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/Makefile#L622
--
Frantisek Hrbata