Bug 7564

Summary: bitbake: runqueue passes non-finalized metadata to setscene callbacks
Product: [Build System, Metadata & Runtime] BitBake Reporter: Christopher Larson <kergoth>
Component: bitbakeAssignee: Christopher Larson <kergoth>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Undecided CC: poky.bs.watcher, poky.watcher
Version: unspecified   
Target Milestone: ---   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Christopher Larson 2015-04-02 23:16:36 UTC
The bitbake runqueue passes non-finalized metadata to setscene callbacks, but finalized metadata ends up used when the setscene task is executed. As a result, when using an override with SSTATE_DIR, it can look for setscenes in one location, find them, and then try to extract them from another, or fail to find them in one location even though they're available in the other.
Comment 1 Christopher Larson 2015-04-02 23:21:59 UTC
Aside: why do some areas of bb.runqueue reference self.cooker.data directly, while others use self.cfgData?
Comment 2 Christopher Larson 2015-04-02 23:25:17 UTC
Test case:
$ cat >conf/auto.conf <<END
SSTATE_DIR = "${TOPDIR}/sstate-cache.nooverride"
SSTATE_DIR_forcevariable = "${TOPDIR}/sstate-cache.override"
END
$ rm -rf tmp sstate-cache.override sstate-cache.nooverride
$ bitbake --no-setscene -c populate_sysroot quilt-native
$ rm -rf tmp
$ bitbake -c populate_sysroot quilt-native # this builds from scratch, when it shouldn't, as sstate was written to override, but not to the checked path, nooverride
Comment 3 Christopher Larson 2015-04-02 23:26:50 UTC
Initial testing indicates https://gist.github.com/kergoth/e9a46893fc4e9f1afaa7 resolves this, doing further testing before upstream submission.
Comment 4 Christopher Larson 2015-04-03 22:05:56 UTC
Patch emailed to the bitbake-devel list.
Comment 5 Christopher Larson 2015-04-08 21:33:46 UTC
Richard merged this, so resolving.