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
Thanks, I had thought that too but :( I get an error when running 'make
scripts-basic'?
[prarit@prarit kernel-ark]$ make V=1 scripts_basic
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make: *** [Makefile:711: .config] Error 1
I could have screwed something up though?
P.