Bug 15588

Summary: do_fetch dependency on do_recipe_qa causes hash problems for sstate
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Alban Bedel <alban.bedel>
Component: oe-core otherAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: randy.macleod, richard.purdie
Version: unspecified   
Target Milestone: 5.1 M4   
Hardware: All   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

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