Bug 3503 - additions to IMAGE_INSTALL_append go unnoticed
Summary: additions to IMAGE_INSTALL_append go unnoticed
Status: RESOLVED FIXED
Alias: None
Product: BitBake
Classification: Build System, Metadata & Runtime
Component: bitbake (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 1.4 M2
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-11-28 04:46 UTC by Trevor Woerner
Modified: 2012-12-05 14:38 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Trevor Woerner 2012-11-28 04:46:32 UTC
I'm working off the latest git HEAD, which currently is:
master:eeaad6f50c731fa871cd2f3ae676acbe7b0d638e

For additional information, please see the email thread starting at:
https://lists.yoctoproject.org/pipermail/yocto/2012-November/012901.html

Steps to reproduce are as follows:

- run "source poky/oe-init-build-env qemux86"
- make no modifications to conf/bblayers.conf
- make no changes to conf/local.conf
- run "bitbake core-image-minimal"

After that completes successfully add a package to your image. Which package
you choose is irrelevant. For example, add the following line to your
conf/local.conf:

IMAGE_INSTALL_append = " trace-cmd"

- re-run the build "bitbake core-image-minimal"

This should complete successfully. When it does, modify the last line
of conf/local.conf to add a second package. Again, which package you
add is irrelevant. For example:

IMAGE_INSTALL_append = " trace-cmd bash"

- try re-running the build now: "bitbake core-image-minimal"

This time the build will fail. do_rootfs will fail with:

    Unable to resolve package bash

If you watch the second build carefully you'll see bitbake isn't even trying
to build bash. Robert P. J. Day, for example, noticed bitbake won't even try
to fetch anything (if fetching were required).

The full error follows:

Build Configuration:
BB_VERSION        = "1.16.0"
TARGET_ARCH       = "i586"
TARGET_OS         = "linux"
MACHINE           = "qemux86"
DISTRO            = "poky"
DISTRO_VERSION    = "1.3+snapshot-20121126"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta
meta-yocto
meta-yocto-bsp    = "master:c206007235df3e00c21a1cbf30e8a1bccc07a9e5"

NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Function failed: do_rootfs (see
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.19668
for further information)
ERROR: Logfile of failure stored in:
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.19668
Log data follows:
| DEBUG: Executing shell function do_rootfs
| Generating solve db for
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/deploy/rpm/qemux86...
| Generating solve db for
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/deploy/rpm/i586...
| Generating solve db for
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/deploy/rpm/all...
|    total:               1      0.000000 MB      2.930406 secs
|    fingerprint:      1104      0.032554 MB      0.063469 secs
|    install:           368      0.000000 MB      0.878790 secs
|    digest:            736      5.357010 MB      0.027508 secs
|    signature:         736      0.000000 MB      1.443277 secs
|    dbadd:             368      0.000000 MB      0.866237 secs
|    dbget:           12620      0.000000 MB      0.018020 secs
|    dbput:             368      3.063072 MB      0.541058 secs
|    readhdr:          3681      6.087218 MB      0.010347 secs
|    hdrload:          1929     10.076294 MB      0.012106 secs
|    hdrget:          70812      0.000000 MB      0.081749 secs
| Generating solve db for
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/deploy/rpm/all...
| Processing packagegroup-core-boot...
| Processing trace-cmd...
| Processing bash...
| Unable to resolve package bash
| ERROR: some packages were missing
| ERROR: Function failed: do_rootfs (see
/home/trevor/devel/yocto/gitrepo-method/qemux86/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.19668
for further information)
ERROR: Task 7
(/home/trevor/devel/yocto/gitrepo-method/poky/meta/recipes-core/images/
core-image-minimal.bb, do_rootfs) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1443 tasks of which 1442 didn't need to be
rerun and 1 failed.
No currently running tasks (1442 of 1444)

Summary: 1 task failed:
  /home/trevor/devel/yocto/gitrepo-method/poky/meta/recipes-core/images/
core-image-minimal.bb, do_rootfs
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
Comment 1 Richard Purdie 2012-11-28 10:06:52 UTC
This is an interesting issue. I was able to "reproduce" this a lot quicker with the sequence:

bitbake core-image-minimal -g
cat task-depends.dot | sort > task-depends.dotA
<Add IMAGE_INSTALL_append = " trace-cmd" > local.conf>
bitbake core-image-minimal -g
cat task-depends.dot | sort > task-depends.dotB
<Change to IMAGE_INSTALL_append = " trace-cmd bash" > local.conf>
bitbake core-image-minimal -g
cat task-depends.dot | sort > task-depends.dotC
rm tmp/cache/default-eglibc/qemux86-64/bb_cache.dat.*
(to wipe out the cache files)
bitbake core-image-minimal -g
cat task-depends.dot | sort > task-depends.dotD

task-depends.dotA is the baseline
task-depends.dotB has the addition of trace-cmd, so far so good
task-depends.dotC should show bash but is the same as B
task-depends.dotD is correct and does show bash

This tells us the cache is not noticing the addition of bash and this is a bitbake cache bug.