* Race condition when building external kernel modules
@ 2011-09-07 17:55 Anders Darander
2011-09-08 7:08 ` Anders Darander
0 siblings, 1 reply; 4+ messages in thread
From: Anders Darander @ 2011-09-07 17:55 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
I've seen a race condition when building multiple external kernel
modules.
We are running with BB_NUMBER_THREADS set to 8 or 16, depending on the
build host, thus multiple external kernel modules can be built
simultaneously.
In our layer, we have two small kernel modules, whose recipes inherits
module.bbclass. Often when doing either a clean build, or after cleaning
the two packages, we get a race issue.
At the end of the mail is a short excerpt of the bitbake output after
the failure. The exact failure differs from run to run, but generally it
is similar to this:
| HOSTCC scripts/mod/mk_elfconfig
| fixdep: error opening depfile: scripts/mod/.mk_elfconfig.d: No such
file or directory
i.e. something under scripts in the sysroot gets rebuild in bitbake
threads, but one will fail as the depfile has been removed. At least
that's my interpretation of the most common failure. (Previously, it has
often been the depfile scripts/basic/.fixdeps.d that has been missing).
Do there exist any framework (locks?) to disallow two different recipes
to be build simultaneously?
Should the compile stage in the module bbclass be guarded with a
lock/mutex?
Any other ideas at how this should be attacked?
For our developers, this is mostly an annoying issue; the real issue will
start when we're setting up some autobuilders for our own distro...
Thanks in advance for all ideas/suggestions!
Regards,
Anders
---------- Failure ----------------
NOTE: Running task 714 of 726 (ID: 7,
/home/anders/oe-build/openembedded-core/../chargestorm/recipes/ccudrv/ccudrv.bb,
do_compile)
NOTE: package at91-bootcount-1.0-r3: task do_compile: Started
NOTE: package ccudrv-1.0-r4: task do_compile: Started
ERROR: Function 'do_compile' failed (see
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.6959
for further information)
ERROR: Logfile of failure stored in:
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.6959
Log data follows:
| + cd
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/git
| + do_compile
| + module_do_compile
| + do_make_scripts
| + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
| + oe_runmake 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork
-mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar '
-C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel
scripts
| + '[' xmake = x ']'
| + bbnote make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld '
'AR=arm-oe-linux-gnueabi-ar ' -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + echo 'NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld
AR=arm-oe-linux-gnueabi-ar -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts'
| NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld
AR=arm-oe-linux-gnueabi-ar -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld '
'AR=arm-oe-linux-gnueabi-ar ' -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| make: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| HOSTCC scripts/basic/fixdep
| HOSTCC scripts/basic/docproc
| make[1]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[2]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| CC scripts/mod/empty.o
| HOSTCC scripts/mod/mk_elfconfig
| MKELF scripts/mod/elfconfig.h
| /bin/sh: scripts/mod/mk_elfconfig: Text file busy
| make[2]: *** [scripts/mod/elfconfig.h] Error 1
| make[2]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: *** [scripts/mod] Error 2
| make[1]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make: *** [scripts] Error 2
| make: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| + die 'oe_runmake failed'
| + bbfatal 'oe_runmake failed'
| + echo 'ERROR: oe_runmake failed'
| ERROR: oe_runmake failed
| + exit 1
| ERROR: Function 'do_compile' failed (see
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.6959
for further information)
NOTE: package at91-bootcount-1.0-r3: task do_compile: Failed
ERROR: Function 'do_compile' failed (see
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/ccudrv-1.0-r4/temp/log.do_compile.6973
for further information)
ERROR: Logfile of failure stored in:
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/ccudrv-1.0-r4/temp/log.do_compile.6973
Log data follows:
| + cd
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/ccudrv-1.0-r4/git
| + do_compile
| + module_do_compile
| + do_make_scripts
| + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
| + oe_runmake 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork
-mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar '
-C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel
scripts
| + '[' xmake = x ']'
| + bbnote make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld '
'AR=arm-oe-linux-gnueabi-ar ' -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + echo 'NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld
AR=arm-oe-linux-gnueabi-ar -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts'
| NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld
AR=arm-oe-linux-gnueabi-ar -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc
-mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld '
'AR=arm-oe-linux-gnueabi-ar ' -C
/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| make: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| HOSTCC scripts/basic/docproc
| make[1]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[2]: Entering directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| HOSTCC scripts/mod/mk_elfconfig
| fixdep: error opening depfile: scripts/mod/.mk_elfconfig.d: No such
file or directory
| make[2]: *** [scripts/mod/mk_elfconfig] Error 2
| make[2]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: *** [scripts/mod] Error 2
| make[1]: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make: *** [scripts] Error 2
| make: Leaving directory
`/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| + die 'oe_runmake failed'
| + bbfatal 'oe_runmake failed'
| + echo 'ERROR: oe_runmake failed'
| ERROR: oe_runmake failed
| + exit 1
| ERROR: Function 'do_compile' failed (see
/home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/ccudrv-1.0-r4/temp/log.do_compile.6973
for further information)
NOTE: package ccudrv-1.0-r4: task do_compile: Failed
ERROR: Task 19
(/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb,
do_compile) failed with exit code '1'
ERROR: Task 7
(/home/anders/oe-build/openembedded-core/../chargestorm/recipes/ccudrv/ccudrv.bb,
do_compile) failed with exit code '1'
ERROR:
'/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb'
failed
ERROR:
'/home/anders/oe-build/openembedded-core/../chargestorm/recipes/ccudrv/ccudrv.bb'
failed
--
Anders Darander
ChargeStorm AB
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Race condition when building external kernel modules
2011-09-07 17:55 Race condition when building external kernel modules Anders Darander
@ 2011-09-08 7:08 ` Anders Darander
2014-09-04 23:08 ` Denys Dmytriyenko
0 siblings, 1 reply; 4+ messages in thread
From: Anders Darander @ 2011-09-08 7:08 UTC (permalink / raw)
To: openembedded-core
* Anders Darander <anders@chargestorm.se> [110907 19:55]:
> I've seen a race condition when building multiple external kernel
> modules.
>
> We are running with BB_NUMBER_THREADS set to 8 or 16, depending on the
> build host, thus multiple external kernel modules can be built
> simultaneously.
>
> In our layer, we have two small kernel modules, whose recipes inherits
> module.bbclass. Often when doing either a clean build, or after cleaning
> the two packages, we get a race issue.
>
> At the end of the mail is a short excerpt of the bitbake output after
> the failure. The exact failure differs from run to run, but generally it
> is similar to this:
At the end is a new failure, one that is much more like the "standard"
failure that I see when this race occurs. In this case, only one of the
modules fails, and the other module will succeed. (In the previous mail
was an unusual case were both modules failed...).
> i.e. something under scripts in the sysroot gets rebuild in bitbake
> threads, but one will fail as the depfile has been removed. At least
> that's my interpretation of the most common failure. (Previously, it has
> often been the depfile scripts/basic/.fixdeps.d that has been missing).
This (above) is the most common failure, however like in the failure at
the end, scripts/basic/fixdep could error with a "Text file busy",
giving the same symptoms.
> Do there exist any framework (locks?) to disallow two different recipes
> to be build simultaneously?
> Should the compile stage in the module bbclass be guarded with a
> lock/mutex?
>
> Any other ideas at how this should be attacked?
>
> For our developers, this is mostly an annoying issue; the real issue will
> start when we're setting up some autobuilders for our own distro...
Excerpt from new (more standard-like) failure:
NOTE: package at91-bootcount-1.0-r3: task do_compile: Started
NOTE: package ccudrv-1.0-r4: task do_compile: Started
ERROR: Function 'do_compile' failed (see /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860 for further information)
ERROR: Logfile of failure stored in: /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860
Log data follows:
| + cd /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/git
| + do_compile
| + module_do_compile
| + do_make_scripts
| + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
| + oe_runmake 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + '[' xmake = x ']'
| + bbnote make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + echo 'NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts'
| NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| + make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
| make: Entering directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make[1]: Entering directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| HOSTCC scripts/basic/fixdep
| /bin/sh: scripts/basic/fixdep: Text file busy
| make[1]: *** [scripts/basic/fixdep] Error 1
| make[1]: Leaving directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| make: *** [scripts_basic] Error 2
| make: Leaving directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
| + die 'oe_runmake failed'
| + bbfatal 'oe_runmake failed'
| + echo 'ERROR: oe_runmake failed'
| ERROR: oe_runmake failed
| + exit 1
| ERROR: Function 'do_compile' failed (see /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860 for further information)
NOTE: package at91-bootcount-1.0-r3: task do_compile: Failed
ERROR: Task 19 (/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb, do_compile) failed with exit code '1'
Waiting for 1 active tasks to finish:
0: ccudrv-1.0-r4 do_compile (pid 20861)
NOTE: package ccudrv-1.0-r4: task do_compile: Succeeded
ERROR: '/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb' failed
--
Anders Darander
ChargeStorm AB
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Race condition when building external kernel modules
2011-09-08 7:08 ` Anders Darander
@ 2014-09-04 23:08 ` Denys Dmytriyenko
2014-09-05 6:17 ` Anders Darander
0 siblings, 1 reply; 4+ messages in thread
From: Denys Dmytriyenko @ 2014-09-04 23:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Anders Darander
Hi,
This report is exactly from 3 years ago. Has this ever been resolved or looked
at? We have started seeing this a lot lately in our own distro based on Daisy
with 3.14 kernel when building with 12-24 threads. But it might not be release
specific or even OE specifig...
All the same symptoms as below - external modules break when building/using
scripts from the kernel tree ran by do_make_scripts function. Usually the
failure is due to a race in or around fixdep: error opening depfile, but
sometimes it's in scripts/dtc or scripts/mod when it can't move a temp file
from a build. Looks like kernel creates .tmp_<name>.o files for use with ksyms
utils as well as .<name>.o.d files for fixdep and those are usually the files
that are not available at the right moment due to some race...
Would appreciate any help or pointers. Thanks.
--
Denys
On Thu, Sep 08, 2011 at 09:08:19AM +0200, Anders Darander wrote:
> * Anders Darander <anders@chargestorm.se> [110907 19:55]:
> > I've seen a race condition when building multiple external kernel
> > modules.
> >
> > We are running with BB_NUMBER_THREADS set to 8 or 16, depending on the
> > build host, thus multiple external kernel modules can be built
> > simultaneously.
> >
> > In our layer, we have two small kernel modules, whose recipes inherits
> > module.bbclass. Often when doing either a clean build, or after cleaning
> > the two packages, we get a race issue.
> >
> > At the end of the mail is a short excerpt of the bitbake output after
> > the failure. The exact failure differs from run to run, but generally it
> > is similar to this:
>
> At the end is a new failure, one that is much more like the "standard"
> failure that I see when this race occurs. In this case, only one of the
> modules fails, and the other module will succeed. (In the previous mail
> was an unusual case were both modules failed...).
>
> > i.e. something under scripts in the sysroot gets rebuild in bitbake
> > threads, but one will fail as the depfile has been removed. At least
> > that's my interpretation of the most common failure. (Previously, it has
> > often been the depfile scripts/basic/.fixdeps.d that has been missing).
>
> This (above) is the most common failure, however like in the failure at
> the end, scripts/basic/fixdep could error with a "Text file busy",
> giving the same symptoms.
>
> > Do there exist any framework (locks?) to disallow two different recipes
> > to be build simultaneously?
> > Should the compile stage in the module bbclass be guarded with a
> > lock/mutex?
> >
> > Any other ideas at how this should be attacked?
> >
> > For our developers, this is mostly an annoying issue; the real issue will
> > start when we're setting up some autobuilders for our own distro...
>
> Excerpt from new (more standard-like) failure:
> NOTE: package at91-bootcount-1.0-r3: task do_compile: Started
> NOTE: package ccudrv-1.0-r4: task do_compile: Started
> ERROR: Function 'do_compile' failed (see /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860 for further information)
> ERROR: Logfile of failure stored in: /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860
> Log data follows:
> | + cd /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/git
> | + do_compile
> | + module_do_compile
> | + do_make_scripts
> | + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> | + oe_runmake 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
> | + '[' xmake = x ']'
> | + bbnote make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
> | + echo 'NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts'
> | NOTE: make -e MAKEFLAGS= CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
> | + make -e MAKEFLAGS= 'CC=arm-oe-linux-gnueabi-gcc -mno-thumb-interwork -mno-thumb' 'LD=arm-oe-linux-gnueabi-ld ' 'AR=arm-oe-linux-gnueabi-ar ' -C /home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel scripts
> | make: Entering directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
> | make[1]: Entering directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
> | HOSTCC scripts/basic/fixdep
> | /bin/sh: scripts/basic/fixdep: Text file busy
> | make[1]: *** [scripts/basic/fixdep] Error 1
> | make[1]: Leaving directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
> | make: *** [scripts_basic] Error 2
> | make: Leaving directory `/home/anders/oe-build/build-ccu/tmp-eglibc/sysroots/ccu/kernel'
> | + die 'oe_runmake failed'
> | + bbfatal 'oe_runmake failed'
> | + echo 'ERROR: oe_runmake failed'
> | ERROR: oe_runmake failed
> | + exit 1
> | ERROR: Function 'do_compile' failed (see /home/anders/oe-build/build-ccu/tmp-eglibc/work/ccu-oe-linux-gnueabi/at91-bootcount-1.0-r3/temp/log.do_compile.20860 for further information)
> NOTE: package at91-bootcount-1.0-r3: task do_compile: Failed
> ERROR: Task 19 (/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb, do_compile) failed with exit code '1'
> Waiting for 1 active tasks to finish:
> 0: ccudrv-1.0-r4 do_compile (pid 20861)
> NOTE: package ccudrv-1.0-r4: task do_compile: Succeeded
> ERROR: '/home/anders/oe-build/openembedded-core/../chargestorm/recipes/at91-bootcount/at91-bootcount.bb' failed
>
> --
> Anders Darander
> ChargeStorm AB
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Race condition when building external kernel modules
2014-09-04 23:08 ` Denys Dmytriyenko
@ 2014-09-05 6:17 ` Anders Darander
0 siblings, 0 replies; 4+ messages in thread
From: Anders Darander @ 2014-09-05 6:17 UTC (permalink / raw)
To: Denys Dmytriyenko; +Cc: openembedded-core@lists.openembedded.org
Hi,
* Denys Dmytriyenko <denis@denix.org> [140905 01:09]:
> This report is exactly from 3 years ago. Has this ever been resolved or looked
> at? We have started seeing this a lot lately in our own distro based on Daisy
> with 3.14 kernel when building with 12-24 threads. But it might not be release
> specific or even OE specifig...
Yes, our usecase was solved by by commit 8681b82e8b466929205edde7ba479f3ac1a6143e,
"module.bbclass: add lock to prevent error bulding ext modules". That
seems to still be in modules.bbclass, thus the do_make_scripts task
ought to be protected.
> All the same symptoms as below - external modules break when building/using
> scripts from the kernel tree ran by do_make_scripts function. Usually the
> failure is due to a race in or around fixdep: error opening depfile, but
> sometimes it's in scripts/dtc or scripts/mod when it can't move a temp file
> from a build. Looks like kernel creates .tmp_<name>.o files for use with ksyms
> utils as well as .<name>.o.d files for fixdep and those are usually the files
> that are not available at the right moment due to some race...
Do you get the issue also when building just one external module? I'd
guess not...
Can you verify that it's in the do_make_scripts function the breakage
occurs, or is it in the do_compile step?
Cheers,
Anders
--
Anders Darander
ChargeStorm AB Tel: +46 702 44 84 36
Drottninggatan 20 Email: anders@chargestorm.se
602 24 Norrköping Web: www.chargestorm.se
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-09-05 6:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-07 17:55 Race condition when building external kernel modules Anders Darander
2011-09-08 7:08 ` Anders Darander
2014-09-04 23:08 ` Denys Dmytriyenko
2014-09-05 6:17 ` Anders Darander
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox