Bug 15588 - do_fetch dependency on do_recipe_qa causes hash problems for sstate
Summary: do_fetch dependency on do_recipe_qa causes hash problems for sstate
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: oe-core other (show other bugs)
Version: unspecified
Hardware: All Multiple
: Medium+ normal
Target Milestone: 5.1 M4
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2024-09-04 11:26 UTC by Alban Bedel
Modified: 2024-09-06 14:26 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alban Bedel 2024-09-04 11:26:40 UTC
The sstate machinery has some special handling to make the do_fetch state not depends on the package arch. But since the recipe QA was added in commit e0c71367ab59 ("insane.bbclass: add do_recipe_qa task") the do_fetch task depend on the do_recipe_qa task which is arch specific. This then indirectly make the task hash of do_fetch be arch specific and lead to some needless sstate mismatch.

The do_recipe_qa task is also set to run before do_package_qa and do_build so it would just run a bit later without this dependency.
Comment 1 Richard Purdie 2024-09-05 08:36:48 UTC
The reason it was injected before fetch was so that it runs early in the build and quickly shows the user recipe QA issues. I'm not a huge fan of that position but there are definite pros and cons to it. I recently did some work to improve the ERROR_QA dependency and I'm hoping that improved that task. Whether it is still arch specific, I'm not sure but it should at least be better with master.
Comment 2 Richard Purdie 2024-09-06 14:26:57 UTC
Causing a "hash problem" isn't strictly true since do_fetch isn't an sstate task. I agree they are too arch specific at the moment though. I merged some fixes:

https://git.yoctoproject.org/poky/commit/?id=6cc2a3649a03da8b2ebc4fff4b7bd9ba4eb76497

when then allows:

https://git.yoctoproject.org/poky/commit/?id=27eeb5e70bcc872b9d06caf27977a82732f64c77