[oe] [PATCH] Add locking on tasks that add package_update_index_ipk

Tom Rini tom_rini at mentor.com
Sat Jun 5 00:03:59 UTC 2010


We add a lockfile of do_populate_sdk and do_rootfs (in rootfs_ipk) that 
is also the lockfile that package_update_index_ipk uses.  With enough 
threads it is possible that one image (or meta-toolchain) is attempting 
to use the package index while another has only reached the point of 
generating the index leading to an empty index being seen later on.

diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass
index 9fa1d5e..0303c54 100644
--- a/classes/rootfs_ipk.bbclass
+++ b/classes/rootfs_ipk.bbclass
@@ -6,6 +6,7 @@
  #

  do_rootfs[depends] += "opkg-native:do_populate_sysroot"
+do_rootfs[lockfiles] = "${DEPLOY_DIR_IPK}.lock"

  IPKG_TMP_DIR = "${IMAGE_ROOTFS}-tmp"
  IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} -t 
${IPKG_TMP_DIR} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", 
"-nodeps", "", d)}"
diff --git a/recipes/meta/canadian-sdk.bb b/recipes/meta/canadian-sdk.bb
index 47529a2..2160441 100644
--- a/recipes/meta/canadian-sdk.bb
+++ b/recipes/meta/canadian-sdk.bb
@@ -169,5 +169,6 @@ do_populate_sdk() {
  }

  do_populate_sdk[nostamp] = "1"
+do_populate_sdk[lockfiles] = "${DEPLOY_DIR_IPK}.lock"
  addtask package_update_index_ipk before do_populate_sdk
  addtask populate_sdk before do_build after do_install
diff --git a/recipes/meta/meta-toolchain.bb b/recipes/meta/meta-toolchain.bb
index 064fc3b..82918ad 100644
--- a/recipes/meta/meta-toolchain.bb
+++ b/recipes/meta/meta-toolchain.bb
@@ -177,5 +177,6 @@ do_populate_sdk() {
  }

  do_populate_sdk[nostamp] = "1"
+do_populate_sdk[lockfiles] = "${DEPLOY_DIR_IPK}.lock"
  addtask package_update_index_ipk before do_populate_sdk
  addtask populate_sdk before do_build after do_install

-- 
Tom Rini
Mentor Graphics Corporation




More information about the Openembedded-devel mailing list