[LTP] [PATCH] fanotify: Fix broken tests due to fanotify_events_supported_by_kernel()

Amir Goldstein amir73il@gmail.com
Tue Nov 28 12:14:00 CET 2023


On Tue, Nov 28, 2023 at 12:07 AM Petr Vorel <pvorel@suse.cz> wrote:
>
> Hi Jan, Amir,
>
> > On Mon 27-11-23 19:40:14, Amir Goldstein wrote:
> > > On Mon, Nov 27, 2023 at 5:40 PM Jan Kara <jack@suse.cz> wrote:
>
> > > > When LTP test is run with CWD in btrfs subvolume, tests like fanotify16
> > > > fail with:
>
> > > > fanotify.h:169: TBROK: fanotify_mark (3, FAN_MARK_ADD, ..., AT_FDCWD, ".") failed: EXDEV (18)
>
> > > > This is because fanotify_events_supported_by_kernel() try to place a
> > > > mark onto CWD and that is forbidden for btrfs subvolumes. Change
> > > > fanotify_events_supported_by_kernel() to use "/" instead of "." which
> > > > has higher chances of working for btrfs.
>
>
> > > FWIW, "." in setup() is usually a tempdir (under LTP temp root)
> > > So I'm not sure that "/" is a better choice than ".".
> > > At least the LTP temp dir is configurable.
> > > and no reason that "/" is not a btrfs subvol inside a container...
>
> > Yeah, that's a good point. I was thinking it need not be so simple but
> > wanted something to start a discussion :)
>
> The variable is TMPDIR (all variables are printed with -h, e.g. ./fanotify01 -h).
> I was expecting this would be a problem, but instead the test was broken on
> Tumbleweed with the default TMPDIR value /tmp.
>
> > > FYI, in this branch:
> > > https://github.com/amir73il/ltp/commits/fanotify_fsid
>
> FYI the first commit breaks at least vfat on fanotify13
> # LTP_SINGLE_FS_TYPE=vfat ./fanotify13
> ...
> tst_test.c:1650: TINFO: === Testing on vfat ===
> tst_test.c:1105: TINFO: Formatting /dev/loop1 with vfat opts='' extra opts=''
> tst_test.c:1119: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanM9wLom/mntpoint fstyp=vfat flags=0
> fanotify13.c:152: TINFO: Test #0.1: FAN_REPORT_FID with mark flag: FAN_MARK_INODE
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> fanotify13.c:152: TINFO: Test #1.1: FAN_REPORT_FID with mark flag: FAN_MARK_INODE
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> fanotify13.c:152: TINFO: Test #2.1: FAN_REPORT_FID with mark flag: FAN_MARK_MOUNT
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> fanotify13.c:152: TINFO: Test #3.1: FAN_REPORT_FID with mark flag: FAN_MARK_MOUNT
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> fanotify13.c:152: TINFO: Test #4.1: FAN_REPORT_FID with mark flag: FAN_MARK_FILESYSTEM
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> fanotify13.c:152: TINFO: Test #5.1: FAN_REPORT_FID with mark flag: FAN_MARK_FILESYSTEM
> fanotify13.c:157: TCONF: overlayfs not supported on vfat
> tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try  1...
> tst_device.c:412: TINFO: Likely gvfsd-trash is probing newly mounted fs, kill it to speed up tests.
> tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try  2...
> tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try  3...
> ...
> tst_device.c:408: TINFO: umount('mntpoint') failed with EBUSY, try 50...
> tst_device.c:419: TWARN: Failed to umount('mntpoint') after 50 retries
> tst_test.c:1650: TINFO: === Testing on exfat ===
> tst_test.c:1105: TINFO: Formatting /dev/loop1 with exfat opts='' extra opts=''
> tst_test.c:1119: TINFO: Mounting /dev/loop1 to /tmp/LTP_fanM9wLom/mntpoint fstyp=exfat flags=0
> tst_test.c:1119: TINFO: Trying FUSE...
> FUSE exfat 1.4.0 (libfuse2)
> fuse: mount failed: Device or resource busy
> tst_test.c:1119: TBROK: mount.exfat failed with 256
>

I believe this breakage is a regression due to overlayfs bug in v6.7-rc1
that was fixed by commit
37f32f526438 ("ovl: fix memory leak in ovl_parse_param()") in v6.7-rc2.

Thanks,
Amir.


More information about the ltp mailing list