Bug 6935

Summary: When Toaster is running, bitbake doesn't see changes in recipe file
Product: [Build System, Metadata & Runtime] BitBake Reporter: Martin Vuille <martin_vuille>
Component: bitbakeAssignee: Richard Purdie <richard.purdie>
Status: VERIFIED FIXED QA Contact: Mihail Stanciu <stanciux.mihail>
Severity: major    
Priority: High CC: alexandru.c.georgescu, bogdanx.a.voiculescu, poky.bs.watcher, poky.watcher, stanciux.mihail, wmills
Version: unspecified   
Target Milestone: 1.8 M2   
Hardware: All   
OS: Multiple   
Whiteboard: TC needed
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Martin Vuille 2014-11-06 12:33:18 UTC
Poky 1.6.1 / Daisy
Bitbake 1.22.0

Steps to reproduce:

- Start Toaster
- Build an image
- Change packagegroup recipe (e.g., add package to RDEPENDS) included in
  image built earlier
- Rebuild image
- Nothing is built, bitbake does not see the change in the recipe

If Toaster is stopped before rebuilding, then the change is seen and
the image is rebuilt

See this thread in Yocto mailing list
https://lists.yoctoproject.org/pipermail/yocto/2014-November/022118.html

Near the end of the thread, an alternate way to reproduce the problem
is reported

MV
Comment 1 Bill Mills 2015-01-05 16:08:40 UTC
This issue effects confile files as well.
Comment 2 Richard Purdie 2015-01-13 22:24:52 UTC
pyinotify support added in patches on bitbake-devel to resolve this and other issues.
Comment 4 Mihail Stanciu 2015-01-22 11:06:35 UTC
Verified on master: d9d5b8b499af3ae01a1e33d0d3969c54c2d4ab1b

TC needed.

Quoting commit notes for test steps:

For education and QA purposes I can document a workflow that illustrates this:

$ source oe-init-build-env-memres
$ time bitbake bash
[base configuration is loaded, recipes are parsed, bash builds]
$ time bitbake bash
[command returns quickly since all caches are valid]
$ touch ../meta/classes/gettext.bbclass
$ time bitbake bash
[reparse is triggered, time is longer than above]
$ echo 'FOO = "1"' >> conf/local.conf
$ time bitbake bash
[reparse is triggered, but with a base configuration reload too]