[oe-commits] Richard Purdie : sstate: Use datastore copies due to data changes persisting

git at git.openembedded.org git at git.openembedded.org
Sat Dec 21 08:58:27 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: afaf16100efa79a275a2f4b9f2caa80decfdeb81
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=afaf16100efa79a275a2f4b9f2caa80decfdeb81

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Sat Dec 21 08:57:16 2013 +0000

sstate: Use datastore copies due to data changes persisting

The way the "all arch" PKGSPEC is enabled, it causes corruption
of the datastore of sstate operations against other tasks.

Data store copies are cheap and allow us to use that trick, resetting
to a clean copy of the data afterwards.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/sstate.bbclass | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 377af20..5a22ff8 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -300,8 +300,9 @@ def sstate_clean_cachefile(ss, d):
 
 def sstate_clean_cachefiles(d):
     for task in (d.getVar('SSTATETASKS', True) or "").split():
-        ss = sstate_state_fromvars(d, task)
-        sstate_clean_cachefile(ss, d)
+        ld = d.createCopy()
+        ss = sstate_state_fromvars(ld, task)
+        sstate_clean_cachefile(ss, ld)
 
 def sstate_clean_manifest(manifest, d):
     import oe.path
@@ -370,8 +371,9 @@ python sstate_cleanall() {
 
     tasks = d.getVar('SSTATETASKS', True).split()
     for name in tasks:
-        shared_state = sstate_state_fromvars(d, name)
-        sstate_clean(shared_state, d)
+        ld = d.createCopy()
+        shared_state = sstate_state_fromvars(ld, name)
+        sstate_clean(shared_state, ld)
 }
 
 def sstate_hardcode_path(d):



More information about the Openembedded-commits mailing list