<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>16099</bug_id>
          
          <creation_ts>2025-12-12 11:05:19 +0000</creation_ts>
          <short_desc>devtool: oe-selftest failing on Ubuntu 25.10: couldn&apos;t allocate absolute path for &apos;null&apos;.</short_desc>
          <delta_ts>2026-01-27 10:28:34 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>devtools / tool chain</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>5.3.2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mathieu Dubois-Briand">mathieu.dubois-briand</reporter>
          <assigned_to name="Yoann Congal">yoann.congal</assigned_to>
          <cc>gordon.lack</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>paul</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>yoann.congal</cc>
    
    <cc>yp.pseudo.watcher</cc>
    
    <cc>yp.watcher</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>103548</commentid>
    <comment_count>0</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-12 11:05:19 +0000</bug_when>
    <thetext>While working on oe-selftest issues on Ubuntu 25.10, I ended with a strange behavior of pseudo on this distro.

Quick reproduce step:
PSEUDO_PREFIX=/home/mathieu/projects/swat/gits/build-2510/tmp/sysroots-components/x86_64/pseudo-native/usr /home/mathieu/projects/swat/gits/build-2510/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo ls -l
couldn&apos;t allocate absolute path for &apos;null&apos;.
total 388
-rw-r--r-- 1 1000 1000 395938 Dec 12 10:44 log

So the command is running correctly, but we have an extra error line.

Enabling all debug logging options, I get:

740: pae: &apos;/usr/lib/cargo/bin/coreutils&apos;, + &apos;locales&apos;, is_dir 1
740: paes: append_element gave us &apos;/usr/lib/cargo/bin/coreutils/locales&apos;, current &apos;&apos;
740: element to add: &apos;ls&apos;
740: pae: &apos;/usr/lib/cargo/bin/coreutils/locales&apos;, + &apos;ls&apos;, is_dir 0
740: paes: append_element gave us &apos;/usr/lib/cargo/bin/coreutils/locales/ls&apos;, current &apos;&apos;
740: &lt;nil&gt; + /usr/lib/cargo/bin/coreutils/locales/ls =&gt; &lt;/usr/lib/cargo/bin/coreutils/locales/ls&gt;
740: base_path[follow]: &lt;nil&gt;&lt;/&gt;/usr/lib/cargo/bin/coreutils/locales/ls =&gt; /usr/lib/cargo/bin/coreutils/locales/ls
740: root_path [statx, 14487]: &apos;/usr/lib/cargo/bin/coreutils/locales/ls&apos; from &apos;/usr/lib/cargo/bin/coreutils/locales/ls&apos;
740: statx - yielded lock, restored signals
740: wrapper completed: statx returns -1 (errno: 2)
740: wrapper called: statx
740: statx - signals blocked, obtaining lock
740: couldn&apos;t allocate absolute path for &apos;null&apos;.
740: root_path [statx, 14487]: &apos;&lt;nil&gt;&apos; from &apos;&lt;nil&gt;&apos;
740: statx - yielded lock, restored signals
740: wrapper completed: statx returns -1 (errno: 14)

So it look the ls binary is trying to open /usr/lib/cargo/bin/coreutils/locales/ls, and this file does not exist. If I create the said file, I no longer have any issue:

$ sudo mkdir /usr/lib/cargo/bin/coreutils/locales/
$ sudo touch /usr/lib/cargo/bin/coreutils/locales/ls
$ PSEUDO_PREFIX=/home/mathieu/projects/swat/gits/build-2510/tmp/sysroots-components/x86_64/pseudo-native/usr /home/mathieu/projects/swat/gits/build-2510/tmp/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo ls -l
total 388
-rw-r--r-- 1 1000 1000 395938 Dec 12 10:44 log

Of course the ls binary is from uutils:
$ ls --version
ls (uutils coreutils) 0.2.2

So, is that a bug of pseudo? Maybe not. But it looks like this error will be shown on a lot of uutils commands when they are run in pseudo, not only ls: I feel like we should somehow avoid getting this message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103550</commentid>
    <comment_count>1</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-12 11:14:05 +0000</bug_when>
    <thetext>And of course I forgot to link the initial entry...
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16091</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103590</commentid>
    <comment_count>2</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-18 15:40:03 +0000</bug_when>
    <thetext>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 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103593</commentid>
    <comment_count>3</comment_count>
    <who name="Gordon Lack">gordon.lack</who>
    <bug_when>2025-12-18 15:43:24 +0000</bug_when>
    <thetext>&gt;&gt;&gt; So, is that a bug of pseudo? Maybe not.

Yes, it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103594</commentid>
    <comment_count>4</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-18 15:44:15 +0000</bug_when>
    <thetext>OK, so now we should understand why devtool is using ls from the host instead of buildtools</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103610</commentid>
    <comment_count>5</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-19 08:26:50 +0000</bug_when>
    <thetext>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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103614</commentid>
    <comment_count>6</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2025-12-19 10:40:56 +0000</bug_when>
    <thetext>The test_devtool_deploy_target case runs pseudo outside of bitbake, so it&apos;s using an unmodified PATH: https://git.openembedded.org/openembedded-core/tree/meta/lib/oeqa/selftest/cases/devtool.py#n1850.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103615</commentid>
    <comment_count>7</comment_count>
    <who name="Gordon Lack">gordon.lack</who>
    <bug_when>2025-12-19 11:12:42 +0000</bug_when>
    <thetext>But the actual cause is that pseudo isn&apos;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&apos;t seem to want to change pseudo to handle this.

See:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16075#c6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103616</commentid>
    <comment_count>8</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2025-12-19 11:19:18 +0000</bug_when>
    <thetext>@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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103635</commentid>
    <comment_count>9</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2025-12-22 15:57:36 +0000</bug_when>
    <thetext>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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103636</commentid>
    <comment_count>10</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2025-12-22 15:59:49 +0000</bug_when>
    <thetext>Not sure what happened to my link, let&apos;s try again:

https://lore.kernel.org/openembedded-core/20251222-devtool-deploy-selftest-v1-1-2e656331dbec@pbarker.dev/T/#u</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103637</commentid>
    <comment_count>11</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2025-12-22 17:07:49 +0000</bug_when>
    <thetext>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&apos;d use inside bitbake. We may want to set os.environ[&apos;PATH&apos;] on entry to devtool or selftest to ensure that we&apos;re using HOSTTOOLS everywhere that we should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103641</commentid>
    <comment_count>12</comment_count>
    <who name="Mathieu Dubois-Briand">mathieu.dubois-briand</who>
    <bug_when>2025-12-23 14:01:02 +0000</bug_when>
    <thetext>oe-selftest-debian ubuntu2510-vk-1 mathieu/master-next&amp;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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103731</commentid>
    <comment_count>13</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-01-07 11:30:10 +0000</bug_when>
    <thetext>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&apos;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&apos;t change the PATH more generally as these tools rely on calling tools that wouldn&apos;t be on the bitbake PATH. So, I think we can call this resolved once the above patches are merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103770</commentid>
    <comment_count>14</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-01-08 16:15:28 +0000</bug_when>
    <thetext>Fix merged to master in https://git.openembedded.org/openembedded-core/commit/?id=8a264cb75ab456c22568b135c473064553e5321b.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103775</commentid>
    <comment_count>15</comment_count>
    <who name="Gordon Lack">gordon.lack</who>
    <bug_when>2026-01-08 17:07:03 +0000</bug_when>
    <thetext>&gt;&gt; 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103809</commentid>
    <comment_count>16</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2026-01-12 15:53:31 +0000</bug_when>
    <thetext>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/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103833</commentid>
    <comment_count>17</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-01-13 10:48:36 +0000</bug_when>
    <thetext>Hi Yoann, backporting the first patch (&quot;selftest: devtool: Set PATH when running pseudo&quot;) 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&apos;t be backported yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103845</commentid>
    <comment_count>18</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2026-01-13 12:58:07 +0000</bug_when>
    <thetext>(In reply to Paul Barker from comment #17)
&gt; Hi Yoann, backporting the first patch (&quot;selftest: devtool: Set PATH when
&gt; running pseudo&quot;) should be enough to silence this error. That is present on
&gt; master so can be backported. Please go ahead and test that, if it succeeds
&gt; we can respin as 5.3.1-rc2.
&gt; 
&gt; The other two patches for devtool are not yet on master so shouldn&apos;t be
&gt; backported yet.

5.3.1 had already started QA from the 5.3.1-rc2 build[0]. So we won&apos;t respin.

I&apos;ve noted to import these patches (first one certain, &quot;to be confirmed&quot; for the other 2) for the next whinlatter builds/tests/patchs merge.

[0]: https://lists.yoctoproject.org/g/qa-build-notification/topic/117234373#msg641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103874</commentid>
    <comment_count>19</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2026-01-13 23:00:17 +0000</bug_when>
    <thetext>Stable build hit:
whinlatter oe-selftest-debian ubuntu2510-vk-1 https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103991</commentid>
    <comment_count>20</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2026-01-21 12:05:34 +0000</bug_when>
    <thetext>Yoann, please close once https://git.openembedded.org/openembedded-core/commit/?id=8a264cb75ab456c22568b135c473064553e5321b has been merged to the relevant stable branch(es).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104079</commentid>
    <comment_count>21</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2026-01-27 10:28:34 +0000</bug_when>
    <thetext>Backport fix merged on Whinlatter:
selftest: devtool: Set PATH when running pseudo
https://git.openembedded.org/openembedded-core/commit/?h=whinlatter&amp;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.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>