Looking at the error, the problem lies in the Filesystem agent. There are some monitoring functions being tested, and the one which fails is a check which reads the starting bytes of a device.
This is done using `dd`. This is the exact command executed in the test: dd if=/dev/loop0 iflag=direct bs=4k count=1 2>&1 >/dev/null The first smell is: this passes with `coreutils-from-gnu`, but fails with `coreutils-from-uutils` with: `dd: IO error: Invalid input` strace shows that dd can't read from the FD: `read(3, 0x5d3c457b94a0, 4096) = -1 EINVAL (Invalid argument)` It seems the rust coreutils can't deal with the `direct` flag appropriately [1]. The implementation of O_DIRECT seems different than the one in the GNU version - and it seems to lack buffer alignment, which is needed for direct reads. In the resource-agents side, a workaround would be removing the iflag from the `dd` call. However, the commit which introduces the flag (tens of years ago) states: "Reading from the device in O_DIRECT mode is imperative to bypass caches.", so that's not acceptable for the monitoring functionality. So this needs to be looked at in the coreutils side. I am adding bug tasks. For the package migrations blocked on this bug, I suggest adding hints so they get in. As a last resort, migration-reference is also a workaround for now. Mind that many other packages (or at least package tests) also call/depend on the `direct` iflag, and are potentially affected by this coreutils bug. --- Steps to reproduce: 1. Launch a questing VM with coreutils-from-uutils 2. Create a file which will be mapped to loop0: $ sudo dd if=/dev/zero of=/example bs=1 count=0 seek=16M Make sure to not create it in a tmpfs, as this is a different scenario - also not supported in the rust coreutils[1] 3. Map loop0 to the file: $ sudo losetup /dev/loop0 /example 4. Try to read the data without using the `direct` iflag, see it works: sudo dd if=/dev/loop0 bs=4k count=1 5. Try to read the data using the `direct` iflag, see it fails: sudo dd if=/dev/loop0 iflag=direct bs=4k count=1 6. Launch a questing VM with coreutils-from-gnu 7. Repeat steps 2 to 4 8. Repeat step 5, but this time it works --- [1] https://users.rust-lang.org/t/how-does-rust-use-directio/93210 ** Changed in: resource-agents (Ubuntu) Status: New => Triaged ** Tags removed: server-todo ** Also affects: rust-coreutils (Ubuntu) Importance: Undecided Status: New ** Also affects: coreutils-from (Ubuntu) Importance: Undecided Status: New ** Changed in: resource-agents (Ubuntu) Assignee: Renan Rodrigo (rr) => (unassigned) ** Changed in: resource-agents (Ubuntu) Importance: Undecided => High -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2125968 Title: resource-agents 1:4.16.0-3ubuntu1 autopkgtests fail on questing To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/coreutils-from/+bug/2125968/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
