All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Crowe <mac@mcrowe.com>
To: bitbake-devel@lists.openembedded.org
Subject: Should stamp files for different versions of a recipe exist at the same time?
Date: Fri, 30 May 2025 18:17:40 +0100	[thread overview]
Message-ID: <aDnoNJFkC535qqiI@mcrowe.com> (raw)

I seem to be running into a problem in Scarthgap that relates to outdated
stamp files not being removed. I think this results in tasks not running
when they should in later builds. I don't believe that this problem happens
with Dunfell[1], though it does still happen with current master (both
Bitbake and openembedded-core) too[2].

In case my description below isn't clear, the files required are available
in
https://github.com/mikecrowe/openembedded-core/tree/stamps-not-removed-repro
though
https://github.com/mikecrowe/openembedded-core/commit/8fd8055ab3e1d2d429c6076481952bace251750c
is probably the most interesting to look at.

My reproduction requires a package to have two different recipes with
different COMPATIBLE_MACHINEs and swapping between building for those two
different MACHINEs. I'm using dummy recipes called lictest_one.bb and
lictest_two.bb because I'm able to reproduce this problem with licence
files, though I suspect that it is not limited to them. I have two machines
named qemuarm64 and qemuarm64b.

# PREPARATION

I first start by running the cleansstate task for the recipe for both
MACHINEs in order to ensure we're starting from a sensible state:

 MACHINE=qemuarm64 bitbake -c cleansstate lictest
 MACHINE=qemuarm64b bitbake -c cleansstate lictest

# FIRST MACHINE BUILD 1

I build for the first machine:

 MACHINE=qemuarm64 bitbake core-image-minimal

At this point tmp-glibc/deploy/licenses/cortexa57/lictest contains the
licence files and tmp-glibc/stamps/cortexa57-oe-linux/lictest/ contains
stamp files only from lictest_one.bb as expected.

# SECOND MACHINE BUILD 1

I build for the second machine:

 MACHINE=qemuarm64b bitbake lictest

At this point tmp-glibc/deploy/licenses/cortexa57/lictest contains the
licence files from lictest_two.bb as expected.
tmp-glibc/stamps/cortexa57-oe-linux/lictest/ contains stamp files from both
recipes. This is unexpected to me as I would have expected the stamps from
lictest_one.bb to be removed due to them being unreachable.

# FIRST MACHINE BUILD 2

I go back to build for the first machine again with some debug output:

 MACHINE=qemuarm64 bitbake -DDD lictest

In that debug output I found:

 DEBUG: Stampfile /fast/mac/git/oe-core/build/tmp-glibc/stamps/cortexa57-oe-linux/lictest/1.do_populate_lic_setscene.eba2f40dbe8904031c070aeff35abee46485bfa827e27731e02e8c5a84ef3a46 not available
 DEBUG: Normal stamp current for task /fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic
 DEBUG: Found task /fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic which could be accelerated
 DEBUG: /fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic has a valid stamp, skipping
/fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic
 DEBUG: Marking task /fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic as buildable
 DEBUG: Setscene covered task /fast/mac/git/oe-core/meta/recipes-core/lictest/lictest_one.bb:do_populate_lic

and tmp-glibc/deploy/licenses/cortexa57/lictest is either empty or it
contains the licence files from lictest_two! The stamps from lictest_two.bb
have been removed from tmp-glibc/stamps/cortexa57-oe-linux/lictest/, but
the ones from lictest_one.bb remain.

My guess is that the problem here is that the stamps from the first machine
build weren't removed during the "SECOND MACHINE BUILD 1" step above. If I
remove them myself then the problem goes away. Is that theory correct? If
so, then I can start trying to work out why and any advice would be
welcome. If that theory is not correct then does anyone have any idea where
I should start investigating?

Thanks.

Mike.

[1] But with the fix for
https://bugzilla.yoctoproject.org/show_bug.cgi?id=14123 cherry-picked.

[2] If the reproduction script is tweaked to replace tmp-glibc with tmp.


             reply	other threads:[~2025-05-30 17:17 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-30 17:17 Mike Crowe [this message]
2025-06-02 10:15 ` [bitbake-devel] Should stamp files for different versions of a recipe exist at the same time? Quentin Schulz
2025-06-02 10:49   ` Mike Crowe
2025-06-02 14:17     ` Richard Purdie
2025-06-02 16:37       ` Mike Crowe
2025-06-02 21:04         ` Richard Purdie
2025-06-03 10:07           ` Mike Crowe
2025-06-03 10:18             ` Richard Purdie
2025-06-08 19:20           ` Mike Crowe
2025-06-08 21:35             ` Richard Purdie
2025-06-09 14:45               ` Mike Crowe
     [not found]               ` <1847671617FAC7D3.17668@lists.openembedded.org>
2025-06-12 14:33                 ` Mike Crowe
2025-06-13 15:20                   ` Richard Purdie
2025-06-17 13:47                     ` Mike Crowe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aDnoNJFkC535qqiI@mcrowe.com \
    --to=mac@mcrowe.com \
    --cc=bitbake-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.