| Summary: | devtool: oe-selftest failing on Ubuntu 25.10: couldn't allocate absolute path for 'null'. | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Mathieu Dubois-Briand <mathieu.dubois-briand> |
| Component: | devtools / tool chain | Assignee: | Yoann Congal <yoann.congal> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | gordon.lack, meta.mr.watcher, meta.watcher, paul, randy.macleod, yoann.congal, yp.pseudo.watcher, yp.watcher |
| Version: | unspecified | ||
| Target Milestone: | 5.3.2 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Mathieu Dubois-Briand
2025-12-12 11:05:19 UTC
And of course I forgot to link the initial entry... https://bugzilla.yoctoproject.org/show_bug.cgi?id=16091 This is actually a duplicate of https://bugzilla.yoctoproject.org/show_bug.cgi?id=16075 *** This bug has been marked as a duplicate of bug 16075 *** >>> So, is that a bug of pseudo? Maybe not.
Yes, it is.
OK, so now we should understand why devtool is using ls from the host instead of buildtools oe-selftest-debian ubuntu2510-vk-1 mathieu/master-next completed at 2025-12-18 15:55:15+00:00 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2855/steps/15/logs/stdio The test_devtool_deploy_target case runs pseudo outside of bitbake, so it's using an unmodified PATH: https://git.openembedded.org/openembedded-core/tree/meta/lib/oeqa/selftest/cases/devtool.py#n1850. But the actual cause is that pseudo isn't checking the path given to the statx() call. The Rust coreutils code make the call with a NULL value specifically to check whether the system call can be made. But the pseudo maintainer reckons this is a bug in coreutils (which it is not) and doesn't seem to want to change pseudo to handle this. See: https://bugzilla.yoctoproject.org/show_bug.cgi?id=16075#c6 @Gordon Lack: To clarify what we discussed on the bug triage call yesterday: Bug #16075 will continue to track the issue of what to do with a NULL path being passed to statx() running under pseudo. This bug will track the selftest case failure. We should not actually see the uutils implementation of ls being used here. So the test case should be fixed to use the correct PATH. Both of these issues need resolving. Patch sent to the list: d-core/20251222-devtool-deploy-selftest-v1-1-2e656331dbec@pbarker.dev/T/#u I reproduced the issue on Ubuntu 25.10 and confirmed that this patch fixes it. Not sure what happened to my link, let's try again: https://lore.kernel.org/openembedded-core/20251222-devtool-deploy-selftest-v1-1-2e656331dbec@pbarker.dev/T/#u We should have a look if there are other instances of runCmd in the selftest suite where we should be using the same PATH as we'd use inside bitbake. We may want to set os.environ['PATH'] on entry to devtool or selftest to ensure that we're using HOSTTOOLS everywhere that we should be. oe-selftest-debian ubuntu2510-vk-1 mathieu/master-next&contrib/mathieu/master-next completed at 2025-12-23 10:03:00+00:00 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2892/steps/15/logs/stdio This should be fixed by selftest: devtool: Set PATH when running pseudo https://lore.kernel.org/openembedded-core/20251222-devtool-deploy-selftest-v1-1-2e656331dbec@pbarker.dev/ I've also followed up with: devtool: deploy: Run pseudo with correct PATH https://lore.kernel.org/openembedded-core/20260106-devtool-path-v1-1-23fd7a493fe8@pbarker.dev/ devtool: deploy: Reset PATH after strip_execs https://lore.kernel.org/openembedded-core/20260106-devtool-path-v1-2-23fd7a493fe8@pbarker.dev/ This covers usage of pseudo in devtool and selftest, and we can't change the PATH more generally as these tools rely on calling tools that wouldn't be on the bitbake PATH. So, I think we can call this resolved once the above patches are merged. Fix merged to master in https://git.openembedded.org/openembedded-core/commit/?id=8a264cb75ab456c22568b135c473064553e5321b. >> This bug will track the selftest case failure. We should not actually see the uutils implementation of ls being used here. So the test case should be fixed to use the correct PATH.
If pseudo were fixed (it *is* bugged) then it would work with the Rust uutils anyway.
This hit a whinlatter 5.3.1 release build: oe-selftest-debian ubuntu2510-vk-1 whinlatter https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2963 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3000 The errors (to help me find this next time): stdio: ERROR: Actual rootfs size (1934451 kB) is larger than allowed size 79872 kB stdio: ERROR: Actual rootfs size (1934451 kB) is larger than allowed size 79872 kB 2026-01-04 21:37:09,954 - oe-selftest - INFO - RESULTS - devtool.DevtoolDeployTargetTests.test_devtool_deploy_target: FAILED (171.21s) 2026-01-04 21:37:09,954 - oe-selftest - INFO - RESULTS - wic.Wic.test_grub_install_pcbios: FAILED (51.73s) Most likely, I need to backport to whinlatter: * [PATCH] selftest: devtool: Set PATH when running pseudo - Paul Barker https://lore.kernel.org/openembedded-core/20251222-devtool-deploy-selftest-v1-1-2e656331dbec@pbarker.dev/ * [PATCH 1/2] devtool: deploy: Run pseudo with correct PATH - Paul Barker https://lore.kernel.org/openembedded-core/20260106-devtool-path-v1-1-23fd7a493fe8@pbarker.dev/ * [PATCH 2/2] devtool: deploy: Reset PATH after strip_execs - Paul Barker https://lore.kernel.org/openembedded-core/20260106-devtool-path-v1-2-23fd7a493fe8@pbarker.dev/ Hi Yoann, backporting the first patch ("selftest: devtool: Set PATH when running pseudo") should be enough to silence this error. That is present on master so can be backported. Please go ahead and test that, if it succeeds we can respin as 5.3.1-rc2.
The other two patches for devtool are not yet on master so shouldn't be backported yet.
(In reply to Paul Barker from comment #17) > Hi Yoann, backporting the first patch ("selftest: devtool: Set PATH when > running pseudo") should be enough to silence this error. That is present on > master so can be backported. Please go ahead and test that, if it succeeds > we can respin as 5.3.1-rc2. > > The other two patches for devtool are not yet on master so shouldn't be > backported yet. 5.3.1 had already started QA from the 5.3.1-rc2 build[0]. So we won't respin. I've noted to import these patches (first one certain, "to be confirmed" for the other 2) for the next whinlatter builds/tests/patchs merge. [0]: https://lists.yoctoproject.org/g/qa-build-notification/topic/117234373#msg641 Stable build hit: whinlatter oe-selftest-debian ubuntu2510-vk-1 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3000 Yoann, please close once https://git.openembedded.org/openembedded-core/commit/?id=8a264cb75ab456c22568b135c473064553e5321b has been merged to the relevant stable branch(es). Backport fix merged on Whinlatter: selftest: devtool: Set PATH when running pseudo https://git.openembedded.org/openembedded-core/commit/?h=whinlatter&id=3961d1958902276fe12dc28afaba02344271c2c2 AB does not run the other stable branches on Ubuntu 25.10 so the above fix is enough to close this but I will think/ask about merging this on the other stable branches. |