[oe] Race condition in packaged staging?

Denys Dmytriyenko denis at denix.org
Thu Feb 11 09:45:24 UTC 2010


Hi,

I've been seeing some strange breaks in my builds from time to time since the 
introduction of new style staging. It doesn't happen often, but when it does, 
I usually see a message from "tar" complaining about the archive being changed 
on the fly, which comes from the kernel during it's do_package_stage task, 
staging_packager function. The simplest workaround was to disable parallel 
build and parallel bitbake execution (PARALLEL_MAKE and BB_NUMBER_THREADS).
I usually never had time to investigate further.

Today I received a slightly different message, which gave me some pointers 
towards a possible race condition in packaged staging, when multiple bitbake 
threads are trying to execute relative tasks and have a conflict:

NOTE: Running task 1372 of 1377 (ID: 980, /OE/arago/recipes/ti/ti-dmai_svn.bb, do_package_write)
NOTE: Running task 1373 of 1377 (ID: 18, /OE/arago/recipes/images/arago-dvsdk-image.bb, do_package_update_index_ipk)
NOTE: Running task 1374 of 1377 (ID: 982, /OE/arago/recipes/ti/ti-dmai_svn.bb, do_package_stage)
ERROR: function staging_packager failed
ERROR: log data follows (/OE/arago-tmp/work/omap3evm-none-linux-gnueabi/ti-dmai-1_1.0+svnr423-r51e/temp/log.staging_packager.13580)
| mkdir: cannot create directory `/OE/arago-deploy/pstage/angstromglibc/IPKG_BUILD.13587': File exists
NOTE: Task failed: /OE/arago-tmp/work/omap3evm-none-linux-gnueabi/ti-dmai-1_1.0+svnr423-r51e/temp/log.staging_packager.13580
ERROR: TaskFailed event exception, aborting
ERROR: Build of /OE/arago/recipes/ti/ti-dmai_svn.bb do_package_stage failed
ERROR: Task 982 (/OE/arago/recipes/ti/ti-dmai_svn.bb, do_package_stage) failed
NOTE: Waiting for 1 active tasks to finish
NOTE: 1: /OE/arago/recipes/images/arago-dvsdk-image.bb, do_package_update_index_ipk (13566)
NOTE: Tasks Summary: Attempted 1372 tasks of which 549 didn't need to be rerun and 1 failed.
ERROR: '/OE/arago/recipes/ti/ti-dmai_svn.bb' failed

Hopefully this helps somebody more familiar with the subject (don't want to 
bother RP, but it's his creation :)) easily identify the culprit and fix it, 
either by adding a lock or something similar... :) I hate to not use the full 
power of my 4 cores and run everything in one thread. Thanks.

-- 
Denys




More information about the Openembedded-devel mailing list