<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>3645</bug_id>
          
          <creation_ts>2012-12-26 19:55:12 +0000</creation_ts>
          <short_desc>Using wrong data when 2 recipes provide same runtime package</short_desc>
          <delta_ts>2013-01-24 23:20:05 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>1.4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Jansa">Martin.Jansa</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>sgw</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>---</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28455</commentid>
    <comment_count>0</comment_count>
      <attachid>992</attachid>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2012-12-26 19:55:12 +0000</bug_when>
    <thetext>Created attachment 992
0001-package-test-add-test-recipes.patch.patch

It&apos;s some sort of race condition, because it does not happen all the time, but often enough to be dangerous.

The same happens between systemd/udev when both gets build (systemd is not preferred provider for udev).

To reproduce use oe-core patch attached and run &apos;bitbake -k c&apos;, you can also &apos;bitbake -c cleansstate a b c&apos; if it does not happen on first try.

&apos;b.do_package_ipk&apos; is referenceing WORKDIR from &apos;a&apos; recipe:
ERROR: Error executing a python function in /OE/oe-core/openembedded-core/meta/recipes-extended/package-test/b.bb:
OSError: [Errno 2] No such file or directory: &apos;/OE/oe-core/tmp-eglibc/work/all-oe-linux/a/1.0-r0/packages-split/b-dbg&apos;

ERROR: The stack trace of python calls that resulted in this exception/failure was:
ERROR:   File &quot;do_package_ipk&quot;, line 193, in &lt;module&gt;
ERROR: 
ERROR:   File &quot;do_package_ipk&quot;, line 45, in do_package_ipk
ERROR: 
ERROR: The code that was being executed was:
ERROR:      0189:        bb.utils.unlockfile(lf)
ERROR:      0190:
ERROR:      0191:
ERROR:      0192:
ERROR:  *** 0193:do_package_ipk(d)
ERROR:      0194:
ERROR: [From file: &apos;do_package_ipk&apos;, lineno: 193, function: &lt;module&gt;]
ERROR:      0041:        basedir = os.path.join(os.path.dirname(root))
ERROR:      0042:        arch = localdata.getVar(&apos;PACKAGE_ARCH&apos;, True)
ERROR:      0043:        pkgoutdir = &quot;%s/%s&quot; % (outdir, arch)
ERROR:      0044:        bb.mkdirhier(pkgoutdir)
ERROR:  *** 0045:        os.chdir(root)
ERROR:      0046:        from glob import glob
ERROR:      0047:        g = glob(&apos;*&apos;)
ERROR:      0048:        try:
ERROR:      0049:            del g[g.index(&apos;CONTROL&apos;)]
ERROR: [From file: &apos;do_package_ipk&apos;, lineno: 45, function: do_package_ipk]
ERROR: Function failed: do_package_ipk
ERROR: Logfile of failure stored in: /OE/oe-core/tmp-eglibc/work/all-oe-linux/b/1.0-r0/temp/log.do_package_write_ipk.18983
ERROR: Task 89 (/OE/oe-core/openembedded-core/meta/recipes-extended/package-test/b.bb, do_package_write_ipk) failed with exit code &apos;1&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28982</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2013-01-21 14:18:16 +0000</bug_when>
    <thetext>A patch to stop bitbake and at least tell the user what is wrong and how to fix it:

diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass
index 790d874..120cd64 100644
--- a/meta/classes/packagedata.bbclass
+++ b/meta/classes/packagedata.bbclass
@@ -1,7 +1,8 @@
 python read_subpackage_metadata () {
     import oe.packagedata
 
-    data = oe.packagedata.read_pkgdata(d.getVar(&apos;PN&apos;, True), d)
+    pn = d.getVar(&apos;PN&apos;, True)
+    data = oe.packagedata.read_pkgdata(pn, d)
 
     for key in data.keys():
         d.setVar(key, data[key])
@@ -9,5 +10,9 @@ python read_subpackage_metadata () {
     for pkg in d.getVar(&apos;PACKAGES&apos;, True).split():
         sdata = oe.packagedata.read_subpkgdata(pkg, d)
         for key in sdata.keys():
+            if key == &quot;PN&quot;:
+                if sdata[key] != pn:
+                    bb.fatal(&quot;Recipe %s is trying to create package %s which was already written by recipe %s. This will cause corruption, plea
+                continue
             d.setVar(key, sdata[key])
 }

For the attached test case (which was extremely helpful btw), this results in:

ERROR: Recipe a is trying to create package d which was already written by recipe b. This will cause corruption, please resolve this and only provide the package from one recipe or the other or only build one of the recipes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29163</commentid>
    <comment_count>2</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2013-01-24 23:20:05 +0000</bug_when>
    <thetext>Fixed in master: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=1f8f6fe4eb6884ac3a254d4ef54c7841e407ecab</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>992</attachid>
            <date>2012-12-26 19:55:12 +0000</date>
            <delta_ts>2012-12-26 19:55:12 +0000</delta_ts>
            <desc>0001-package-test-add-test-recipes.patch.patch</desc>
            <filename>0001-package-test-add-test-recipes.patch</filename>
            <type>text/plain</type>
            <size>1527</size>
            <attacher name="Martin Jansa">Martin.Jansa</attacher>
            
              <data encoding="base64">RnJvbSBhYTE1NDE3YjZlZTdlOTk4MmEzNjQzM2Q3ZmE3ZjE2Y2QwYjRhZWRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+
CkRhdGU6IFdlZCwgMjYgRGVjIDIwMTIgMjA6NTE6MTQgKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YWNrYWdlLXRlc3Q6IGFkZCB0ZXN0IHJlY2lwZXMKClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5z
YSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLS0tCiBtZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFj
a2FnZS10ZXN0L2EuYmIgfCA0ICsrKysKIG1ldGEvcmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlLXRl
c3QvYi5iYiB8IDQgKysrKwogbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2UtdGVzdC9jLmJi
IHwgNCArKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBtZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2EuYmIKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2IuYmIKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2MuYmIKCmRp
ZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2EuYmIgYi9tZXRh
L3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2EuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDMyOTBjMwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1l
eHRlbmRlZC9wYWNrYWdlLXRlc3QvYS5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVyaXQgYWxsYXJj
aAorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKK0xJQ0VOU0UgPSAiQ0xPU0VEIgorUEFDS0FHRVMg
Kz0gImQiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2Iu
YmIgYi9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2IuYmIKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyOTBjMwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEv
cmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlLXRlc3QvYi5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVy
aXQgYWxsYXJjaAorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKK0xJQ0VOU0UgPSAiQ0xPU0VEIgor
UEFDS0FHRVMgKz0gImQiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2Fn
ZS10ZXN0L2MuYmIgYi9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZS10ZXN0L2MuYmIKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY5NDFkMQotLS0gL2Rldi9udWxsCisr
KyBiL21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlLXRlc3QvYy5iYgpAQCAtMCwwICsxLDQg
QEAKK2luaGVyaXQgYWxsYXJjaAorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKK0xJQ0VOU0UgPSAi
Q0xPU0VEIgorUkRFUEVORFNfJHtQTn0gPSAiYSBiIgotLSAKMS44LjAuMgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>