Bug 789

Summary: [sstate] only few setscene tasks run even with same build environment
Product: [Build System, Metadata & Runtime] Meta-yocto Reporter: Jiajun Xu <jiajun.xu>
Component: meta-yoctoAssignee: Richard Purdie <richard.purdie>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: edwin.zhai, kevin.tian, poky.bs.watcher, poky.watcher, sgw
Version: 1.0   
Target Milestone: 1.0 M4   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---
Attachments:
Description Flags
build log with sstate enabled none

Description Jiajun Xu 2011-03-02 05:52:24 UTC
Testing Env:    
Host: Ubuntu 10.04 LTS
Kernel: 2.6.32-21-generic-pae
Commit information: e08dc5aaaeba61e332caab4a3df5750df6b49ac1

I find even with the same build environment on same local host with local sstate cache, only few setscene tasks are used with sstate enabled.

Reproduce Steps:
1. git clone poky master tree
2. git checkout e08dc5aaaeba61e332caab4a3df5750df6b49ac1, which is RC1 build
3. setup the build environment, MACHINE ?= qemux86, and build
poky-image-minimal. After build is finished, the sstate dir will be found under
${TOPDIR}/sstate-cache
4. git clone another poky master tree
5. Set the same configuration as the first tree and set the SSTATE_MIRRORS in
local.conf to the sstate dir built in first tree.
6. build poky-image-minimal

To build native tool packages, there are 88 tasks but only 11 of them are run as setscene task. Part of the log shows:
#########
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Running setscene task 1 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb:do_populate_sysroot_setscene)
NOTE: Running setscene task 2 of 11 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb:do_populate_sysroot_setscene)
NOTE: package pseudo-native-1.0-r0: task do_populate_sysroot_setscene: Started
ERROR: Task 0 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_unpack) failed with exit code '1'
NOTE: Running setscene task 3 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-support/sqlite/sqlite3_3.7.3.bb:do_populate_sysroot_setscene)
NOTE: package tar-replacement-native-1.25-r0: task do_populate_sysroot_setscene: Started
ERROR: Task 1 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_patch) failed with exit code '1'
NOTE: Running setscene task 4 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-core/gettext/gettext_0.17.bb:do_populate_sysroot_setscene)
NOTE: package sqlite3-native-3.7.3-r1: task do_populate_sysroot_setscene: Started
ERROR: Task 3 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_populate_sysroot) failed with exit code '1'
NOTE: Running setscene task 5 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/tcltk/tcl_8.5.9.bb:do_populate_sysroot_setscene)
NOTE: package gettext-native-0.17-r5: task do_populate_sysroot_setscene: Started
ERROR: Task 8 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_unpack) failed with exit code '1'
NOTE: package tcl-native-8.5.9-r0: task do_populate_sysroot_setscene: Started
ERROR: Task 10 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_install) failed with exit code '1'
NOTE: Running setscene task 6 of 11 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/libtool/libtool-native_2.4.bb:do_populate_sysroot_setscene)
NOTE: package libtool-native-2.4-r2: task do_populate_sysroot_setscene: Started
ERROR: Task 6 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_configure) failed with exit code '1'
NOTE: Running setscene task 7 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/automake/automake_1.11.1.bb:do_populate_sysroot_setscene)
NOTE: package automake-native-1.11.1-r1: task do_populate_sysroot_setscene: Started
ERROR: Task 5 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_setscene) failed with exit code '1'
NOTE: Running setscene task 8 of 11 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/autoconf/autoconf_2.65.bb:do_populate_sysroot_setscene)
NOTE: package autoconf-native-2.65-r2: task do_populate_sysroot_setscene: Started
ERROR: Task 4 (virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/pseudo/pseudo_1.0.bb, do_fetch) failed with exit code '1'
NOTE: Running setscene task 9 of 11 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/m4/m4-native_1.4.15.bb:do_populate_sysroot_setscene)
NOTE: package m4-native-1.4.15-r0: task do_populate_sysroot_setscene: Started
ERROR: Task 9 (/home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_patch) failed with exit code '1'
NOTE: Executing RunQueue Tasks
NOTE: Running task 27 of 88 (ID: 75, /home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/m4/m4-native_1.4.15.bb, do_populate_sysroot)
NOTE: Running task 47 of 88 (ID: 12, /home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_fetch)
NOTE: package m4-native-1.4.15-r0: task do_populate_sysroot: Started
NOTE: package tar-replacement-native-1.25-r0: task do_fetch: Started
NOTE: package m4-native-1.4.15-r0: task do_populate_sysroot: Succeeded
NOTE: Running task 55 of 88 (ID: 38, virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/autoconf/autoconf_2.65.bb, do_configure)
NOTE: package autoconf-native-2.65-r2: task do_configure: Started
NOTE: package tar-replacement-native-1.25-r0: task do_fetch: Succeeded
NOTE: Running task 56 of 88 (ID: 8, /home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_unpack)
NOTE: package tar-replacement-native-1.25-r0: task do_unpack: Started
NOTE: package tar-replacement-native-1.25-r0: task do_unpack: Succeeded
NOTE: Running task 57 of 88 (ID: 9, /home/jxu49/osel/poky-sstate-m4/meta/recipes-extended/tar/tar-replacement-native_1.25.bb, do_patch)
NOTE: package tar-replacement-native-1.25-r0: task do_patch: Started
NOTE: package tar-replacement-native-1.25-r0: task do_patch: Succeeded
NOTE: package autoconf-native-2.65-r2: task do_configure: Succeeded
NOTE: Running task 58 of 88 (ID: 39, virtual:native:/home/jxu49/osel/poky-sstate-m4/meta/recipes-devtools/autoconf/autoconf_2.65.bb, do_compile)
NOTE: package autoconf-native-2.65-r2: task do_compile: Started
.....
.....
#########
Comment 1 Jiajun Xu 2011-03-02 05:56:20 UTC
Created attachment 101 [details]
build log with sstate enabled
Comment 2 Richard Purdie 2011-03-06 11:15:17 UTC
Jiajun, could you confirm the line used for SSTATE_MIRRORS please?
Comment 3 Jiajun Xu 2011-03-06 16:44:58 UTC
(In reply to comment #2)
> Jiajun, could you confirm the line used for SSTATE_MIRRORS please?

Yes. It is set to a local folder, which I built from a same commit:
######
SSTATE_MIRRORS ?= "\
file://.* file:///home/jxu49/osel/poky-m4/build/sstate-cache/"
######
Comment 4 Richard Purdie 2011-03-06 21:56:36 UTC
I've looked into this and the problem is in the fetcher mirror handling code. If you set SSTATE_DIR directly, things work as expected. I understand where the problem is in the fetcher but I'm still trying to find the best way to fix it.
Comment 5 Jiajun Xu 2011-03-06 22:02:29 UTC
(In reply to comment #4)
> I've looked into this and the problem is in the fetcher mirror handling code.
> If you set SSTATE_DIR directly, things work as expected. I understand where the
> problem is in the fetcher but I'm still trying to find the best way to fix it.

Thanks for the update, Richard.
Comment 6 Richard Purdie 2011-03-15 08:27:51 UTC
This is fixed in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a778fb311540580476976e43f9c0576284f8dc38 and associated commits.
Comment 7 Jiajun Xu 2011-03-17 06:36:00 UTC
I tried sstate with commit 387e05af6d6f71b43c677983668da418a1633e0d with poky/bernard branch. The bug is fixed. When I built a qemu-native against local sstate cache, sstate could work well. But when I build poky-image-minimal, sstate could work partly and finally build will fail @ do_configure for libtool-cross-2.4-r2. I will report another bug for the issue.

So verify the bug as fixed.