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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox