From: "Mathieu Dubois-Briand" <mathieu.dubois-briand@bootlin.com>
To: <corentin.guillevic@smile.fr>, <bitbake-devel@lists.openembedded.org>
Subject: Re: [bitbake-devel] [PATCH] fetch2: Skip AUTOREV management if no SCM URI
Date: Fri, 26 Dec 2025 17:45:36 +0100 [thread overview]
Message-ID: <DF8ATLBIC41C.NPA04O86LL3L@bootlin.com> (raw)
In-Reply-To: <20251208161219.41335-1-corentin.guillevic@smile.fr>
On Mon Dec 8, 2025 at 5:12 PM CET, Corentin Guillevic via lists.openembedded.org wrote:
> AUTOREV allows to fetch the latest revision. If no SCM URI is used (e.g. git://, ...),
> AUTOREV has no effect. However there is one case in which a recipe with AUTOREV
> but no SCM URI will lead to a parsing error:
>
> ERROR: /path/to/yocto/builds/build-qemux86-64/workspace/recipes/i2c-tools/i2c-tools_3.1.2.bb: AUTOREV/SRCPV set too late for the fetcher to work properly, please set the variables earlier in parsing. Erroring instead of later obtuse build failures.
>
> This error is raised when AUTOREV occurs (__BBAUTOREV_SEEN) but is not acted
> upon (__BBAUTOREV_ACTED_UPON). A recipe with one SCM URI causes the
> srcrev_internal_helper() function to run, and read the value of SRCREV. If
> SRCREV = "${AUTOREV}", then AUTOREV will be acted upon.
>
> If the recipe does not have an SCM URI, SRCREV is not parsed and AUTOREV remains
> unchanged. However, if SRCREV is expanded during the parsing time in Python code
> (either pure or evaluated from BitBake code), then AUTOREV will be expanded too
> and resulting in the setting of __BBAUTOREV_SEEN. However, as there is no SCM
> URI, the code flow that would act upon AUTOREV is never run.
>
> The fix slightly changes the way AUTOREV is handled: if no SCM URI is provided,
> AUTOREV will be considered to have never occurred (__BBAUTOREV_SEEN will not be
> defined).
>
> Signed-off-by: Corentin Guillevic <corentin.guillevic@smile.fr>
> ---
Hi Corentin,
Sorry for the delay, I didn't realise you replied to all questions about
this series.
I believe this is breaking some QA and selftests, am I missing some
other patches?
oeqa.utils.subprocesstweak.OETestCalledProcessError: Command '. /srv/pokybuild/yocto-worker/qemuarm64-armhost/build/build/tmp/work/qemuarm64-poky-linux/core-image-minimal/1.0/testsdkext/environment-setup-cortexa57-poky-linux > /dev/null; devtool add kernel-module-hello-world https://git.yoctoproject.org/git/kernel-module-hello-world;' returned non-zero exit status 1.
...
ERROR: ExpansionError during parsing /srv/pokybuild/yocto-worker/qemuarm64-armhost/build/build/tmp/work/qemuarm64-poky-linux/core-image-minimal/1.0/testsdkext/workspace/recipes/recipetool/tmp-recipetool-g42ny7zl.bb
bb.data_smart.ExpansionError: Failure expanding variable AUTOREV, expression was ${@bb.fetch2.get_autorev(d)} which triggered exception RecursionError: maximum recursion depth exceeded
The variable dependency chain for the failure is: AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> AUTOREV -> SRCREV -> fetcher_hashes_dummyfunc[vardepvalue]
ERROR: Parsing halted due to errors, see error messages above
https://autobuilder.yoctoproject.org/valkyrie/#/builders/8/builds/2957
https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/2965
https://autobuilder.yoctoproject.org/valkyrie/#/builders/30/builds/2906
https://autobuilder.yoctoproject.org/valkyrie/#/builders/36/builds/2931
https://autobuilder.yoctoproject.org/valkyrie/#/builders/45/builds/862
https://autobuilder.yoctoproject.org/valkyrie/#/builders/68/builds/3007
https://autobuilder.yoctoproject.org/valkyrie/#/builders/80/builds/2769
Failing selftests, all with a similar error as above:
pokybleeding.PokyBleeding.test_poky_bleeding_autorev
sstatetests.SStateTests.test_autorev_sstate_works
devtool.DevtoolAddTests.test_devtool_add_fetch_git
devtool.DevtoolAddTests.test_devtool_add_git_style1
recipetool.RecipetoolCreateTests.test_recipetool_create_git_http
recipetool.RecipetoolCreateTests.test_recipetool_create_git_srcbranch
recipetool.RecipetoolCreateTests.test_recipetool_create_git_srcuri_branch
recipetool.RecipetoolCreateTests.test_recipetool_create_git_srcuri_master
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2809
https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2916
https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/3053
Can you have a look at these?
Thanks,
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2025-12-26 16:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-08 16:12 [PATCH] fetch2: Skip AUTOREV management if no SCM URI Corentin Guillevic
2025-12-08 16:59 ` [bitbake-devel] " Paul Barker
2025-12-09 10:43 ` Corentin GUILLEVIC
2025-12-10 10:20 ` Paul Barker
2025-12-10 18:46 ` Corentin GUILLEVIC
2025-12-22 13:50 ` Corentin GUILLEVIC
2025-12-26 16:45 ` Mathieu Dubois-Briand [this message]
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=DF8ATLBIC41C.NPA04O86LL3L@bootlin.com \
--to=mathieu.dubois-briand@bootlin.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=corentin.guillevic@smile.fr \
/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.