On 15/01/2026 17.47, Daniel P. Berrangé wrote:
> The I/O test 128 uses 'dmsetup create' to create a device, optionally
> using sudo to elevate privileges.
>
> This dmsetup command works in GitLab CI, however, the test then fails
> with a missing device name:
>
> 1..1
> # running raw 128
> not ok raw 128
> ----------------------------------- stderr -----------------------------------
> --- /builds/berrange/qemu/tests/qemu-iotests/128.out
> +++ /builds/berrange/qemu/build/scratch/raw-file-128/128.out.bad
> @@ -1,5 +1,5 @@
> QA output created by 128
>
> == reading from error device ==
> -read failed: Input/output error
> +qemu-io: can't open device /dev/mapper/eiodev16546: Could not open '/dev/mapper/eiodev16546': No such file or directory
> *** done
>
> (test program exited with status code 1)
>
> It is believed that this is due to the build env using a manually
> populated /dev, such that the device mapper node won't ever appear.
> It is not a race, since a test adding a sleep did not result in the
> device appearing.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> tests/qemu-iotests/128 | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tests/qemu-iotests/128 b/tests/qemu-iotests/128
> index d0e00d24b1..d75b1a451a 100755
> --- a/tests/qemu-iotests/128
> +++ b/tests/qemu-iotests/128
> @@ -42,6 +42,12 @@ _setup_eiodev()
> echo "0 $((1024 * 1024 * 1024 / 512)) error" | \
> $cmd dmsetup create "$devname" 2>/dev/null
> if [ "$?" -eq 0 ]; then
> + DEV="/dev/mapper/$devname"
> + if ! -e $DEV
> + then
> + _notrun "Device $DEV not appearing"
> + fi
> +
> sudo="$cmd"
> return
> fi
Reviewed-by: Thomas Huth <thuth@redhat.com>