On Fri, May 1, 2015 at 10:28 AM, Richard Purdie <[email protected]> wrote: > On Tue, 2015-04-14 at 19:56 +0300, Ed Bartosh wrote: >> Race condition between do_compile_kernelmodules and do_shared_workdir >> tasks occurs when do_compilemodules changes files in include/generated/* >> while do_shared_workdir tries to copy them to shared working directory. >> >> Functionality of do_shared_workdir has been moved to separate function >> mk_shared_workdir and called from do_kernel_compile. do_shared_workdir >> left in the code as it may be used in many recipes. > > Its called from do_kernel_install according to the patch? > > This leaves a race since some code depends on the do_shared_work task > and shared_work is added after compile before install.
And the autobuilder picked up the failure as well. I have a variant staged here, and will shake it out now that my other kernel series is out. Bruce > > Cheers, > > Richard > >> [YOCTO #7321] >> >> Signed-off-by: Ed Bartosh <[email protected]> >> Signed-off-by: Bruce Ashfield <[email protected]> >> --- >> meta/classes/kernel.bbclass | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass >> index 125ed88..aad430a 100644 >> --- a/meta/classes/kernel.bbclass >> +++ b/meta/classes/kernel.bbclass >> @@ -231,6 +231,8 @@ kernel_do_install() { >> [ -e Module.symvers ] && install -m 0644 Module.symvers >> ${D}/boot/Module.symvers-${KERNEL_VERSION} >> install -d ${D}${sysconfdir}/modules-load.d >> install -d ${D}${sysconfdir}/modprobe.d >> + >> + mk_shared_workdir >> } >> do_install[prefuncs] += "package_get_auto_pr" >> >> @@ -245,7 +247,7 @@ emit_depmod_pkgdata() { >> >> PACKAGEFUNCS += "emit_depmod_pkgdata" >> >> -do_shared_workdir () { >> +mk_shared_workdir () { >> cd ${B} >> >> kerneldir=${STAGING_KERNEL_BUILDDIR} >> @@ -289,6 +291,14 @@ do_shared_workdir () { >> fi >> } >> >> +# NOTE!!! Functionality of do_shared_workdir has been moved to >> mk_shared_workdir >> +# and called from kernel_do_compile. >> +# It caused race condition with do_compile_kernelmodules when it runs >> +# in parallel with do_compile_kernelmodules >> +do_shared_workdir () { >> + : >> +} >> + >> # We don't need to stage anything, not the modules/firmware since those >> would clash with linux-firmware >> sysroot_stage_all () { >> : >> -- >> 2.1.4 >> > > > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
