libguestfs "test-mdadm.sh" and php tests failing?
Hi, on up-to-date Fedora 35, "test-mdadm.sh" in the libguestfs test suite is failing like this: *stdin*:32: libguestfs: error: md_create: mdadm: r1t2: mdadm: specifying chunk size is forbidden for this level I've searched the web for the error message, but only found <https://bugzilla.redhat.com/show_bug.cgi?id=1984335>. I don't recall this failure from earlier, so it must be something recent. I think the error message may refer to the following command: md-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536 This command goes back to historical commit c11a92751e00 ("New API: mdadm-create for creating MD devices.", 2011-11-11). When I prepend SKIP_TEST_MDADM_SH=1 to the "make check" command line, the next test that (unexpectedly) fails is "run-php-tests.sh". Please see the log attached. And, I cannot set a SKIP variable for this test, I think. I'll go ahead and push the common submodule update anyways (5b5fac3e0b10..41126802097f). Thanks, Laszlo
On Tue, Feb 15, 2022 at 10:33:18AM +0100, Laszlo Ersek wrote:
Hi,
on up-to-date Fedora 35, "test-mdadm.sh" in the libguestfs test suite is failing like this:
*stdin*:32: libguestfs: error: md_create: mdadm: r1t2: mdadm: specifying chunk size is forbidden for this level
I've searched the web for the error message, but only found <https://bugzilla.redhat.com/show_bug.cgi?id=1984335>.
I don't recall this failure from earlier, so it must be something recent.
I think the error message may refer to the following command:
md-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536
This command goes back to historical commit c11a92751e00 ("New API: mdadm-create for creating MD devices.", 2011-11-11).
It's unclear what the resolution of that RHEL bug was. But it seems as if setting chunk size was previously ignored for RAID 1, but now mdadm is (correctly) flagging it as an error (see https://bugzilla.redhat.com/show_bug.cgi?id=1987170). RAID 1 doesn't use chunks, obviously in hindsight. In that case we should just remove the chunk:65536 parameter from the test, and maybe note this in the API docs for md-create. Oddly I've not seen this error myself. I might have an old mdadm package installed.
When I prepend SKIP_TEST_MDADM_SH=1 to the "make check" command line, the next test that (unexpectedly) fails is "run-php-tests.sh". Please see the log attached. And, I cannot set a SKIP variable for this test, I think.
PHP bindings are fundamentally broken because of a change in PHP and require invasive and complicated changes to fix: https://bugzilla.redhat.com/show_bug.cgi?id=1935753 I'm currently using --disable-php.
I'll go ahead and push the common submodule update anyways (5b5fac3e0b10..41126802097f).
Thanks, Laszlo
Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
On 02/15/22 11:49, Richard W.M. Jones wrote:
On Tue, Feb 15, 2022 at 10:33:18AM +0100, Laszlo Ersek wrote:
Hi,
on up-to-date Fedora 35, "test-mdadm.sh" in the libguestfs test suite is failing like this:
*stdin*:32: libguestfs: error: md_create: mdadm: r1t2: mdadm: specifying chunk size is forbidden for this level
I've searched the web for the error message, but only found <https://bugzilla.redhat.com/show_bug.cgi?id=1984335>.
I don't recall this failure from earlier, so it must be something recent.
I think the error message may refer to the following command:
md-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536
This command goes back to historical commit c11a92751e00 ("New API: mdadm-create for creating MD devices.", 2011-11-11).
It's unclear what the resolution of that RHEL bug was. But it seems as if setting chunk size was previously ignored for RAID 1, but now mdadm is (correctly) flagging it as an error (see https://bugzilla.redhat.com/show_bug.cgi?id=1987170). RAID 1 doesn't use chunks, obviously in hindsight.
In that case we should just remove the chunk:65536 parameter from the test, and maybe note this in the API docs for md-create.
Oddly I've not seen this error myself. I might have an old mdadm package installed.
When I prepend SKIP_TEST_MDADM_SH=1 to the "make check" command line, the next test that (unexpectedly) fails is "run-php-tests.sh". Please see the log attached. And, I cannot set a SKIP variable for this test, I think.
PHP bindings are fundamentally broken because of a change in PHP and require invasive and complicated changes to fix:
https://bugzilla.redhat.com/show_bug.cgi?id=1935753
I'm currently using --disable-php.
I've got a patch for the md-create chunk issue, and passed --disable-php to ./configure. Now the "test-fuse" case is failing with: 01: checking initial files exist 02: checking initial files contain expected content 03: checking file modes and sizes of initial content 04: checking unlink libguestfs: error: lstatns: /new: No such file or directory 05: checking symbolic link libguestfs: error: lstatns: /symlink: No such file or directory 06: checking readlink 07: checking hard link libguestfs: error: lstatns: /link: No such file or directory nlink of 'hello.txt' was 1 (expected 2) test_fuse() returned -1 /usr/sbin/fuser /tmp/testfusemUdOym guestunmount /tmp/testfusemUdOym Should I disable FUSE as well? Thanks, Laszlo
On Thu, Feb 17, 2022 at 01:41:04PM +0100, Laszlo Ersek wrote:
I've got a patch for the md-create chunk issue, and passed --disable-php to ./configure. Now the "test-fuse" case is failing with:
01: checking initial files exist 02: checking initial files contain expected content 03: checking file modes and sizes of initial content 04: checking unlink libguestfs: error: lstatns: /new: No such file or directory 05: checking symbolic link libguestfs: error: lstatns: /symlink: No such file or directory 06: checking readlink 07: checking hard link libguestfs: error: lstatns: /link: No such file or directory nlink of 'hello.txt' was 1 (expected 2) test_fuse() returned -1 /usr/sbin/fuser /tmp/testfusemUdOym guestunmount /tmp/testfusemUdOym
Should I disable FUSE as well?
I have these two skips: export SKIP_TEST_FUSE_UMOUNT_RACE_SH=1 export SKIP_TEST_GUESTMOUNT_FD=1 However I don't think the should affect this particular test, so there must be some other problem. Using this might help to diagnose it: LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 make check -C fuse Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
On 02/17/22 14:12, Richard W.M. Jones wrote:
On Thu, Feb 17, 2022 at 01:41:04PM +0100, Laszlo Ersek wrote:
I've got a patch for the md-create chunk issue, and passed --disable-php to ./configure. Now the "test-fuse" case is failing with:
01: checking initial files exist 02: checking initial files contain expected content 03: checking file modes and sizes of initial content 04: checking unlink libguestfs: error: lstatns: /new: No such file or directory 05: checking symbolic link libguestfs: error: lstatns: /symlink: No such file or directory 06: checking readlink 07: checking hard link libguestfs: error: lstatns: /link: No such file or directory nlink of 'hello.txt' was 1 (expected 2) test_fuse() returned -1 /usr/sbin/fuser /tmp/testfusemUdOym guestunmount /tmp/testfusemUdOym
Should I disable FUSE as well?
I have these two skips:
export SKIP_TEST_FUSE_UMOUNT_RACE_SH=1 export SKIP_TEST_GUESTMOUNT_FD=1
However I don't think the should affect this particular test, so there must be some other problem.
Using this might help to diagnose it:
LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 make check -C fuse
It seems to be related to caching. I couldn't narrow it down very well because there seem to be two levels of caching, one from "standard FUSE", another from "lib/fuse.c" ("we also implement a readdir cache"). Regardless, blocking the test program right after the fork(), with a loop on a volatile int dummy, attaching separate gdb instances to both child and parent, and unblocking both loops, I can successfully step through the test case. The difference is apparently how much time passes between the various link, stat, etc calls. I've tried adding "GUESTFS_MOUNT_LOCAL_CACHETIMEOUT, 0" to guestfs_mount_local(), but it made no difference. We already have a caching-related "#if 0" in this test case; I think it's more of the same. Thanks Laszlo
participants (2)
-
Laszlo Ersek -
Richard W.M. Jones