** Description changed: == Justification == Commit 92183a42898d ("fsnotify: fix ignore mask logic in send_to_group()") acknowledges the use case of ignoring an event on an inode mark, because of an ignore mask on a mount mark of the same group (i.e. I want to get all events on this file, except for the events that came from that mount). This change depends on correctly merging the inode marks and mount marks group lists, so that the mount mark ignore mask would be tested in send_to_group(). Alas, the merging of the lists did not take into account the case where event in question is not in the mask of any of the mount marks. To fix this, completely remove the tests for inode and mount event masks from the lists merging code. == Fix == 9bdda4e9 (fsnotify: fix ignore mask logic in fsnotify()) Test kernels for Bionic can be found here: http://people.canonical.com/~phlin/kernel/lp-1802454-fanotify10/bionic/ - It seems that T/X poses with the same issue and the patch can be - backported with the same logic, but we should target Bionic only as it's - a fix for 92183a42898d which was only applied to Bionic. + It seems that T/X poses with the same issue and the patch can be backported + with the same logic, but I think we should target Bionic as it's a fix for + for 92183a42898d which was only applied to Bionic. == Regression Potential == Low. - The backport work is required because it's missing another patch 47d9c7cc457 in Bionic, which generalizes the iteration of marks for inode_mark and vfsmount_mark, from: + The backport work is required as it's missing commit 47d9c7cc457 in Bionic, + which generalizes the iteration of marks for inode_mark and vfsmount_mark, from: iter_info.inode_mark to: iter_info.marks[FSNOTIFY_OBJ_TYPE_INODE] - But the patch can still be backported with the same logic. + But the patch can still be backported with the same logic without this + commit. + + The test with the syscalls test in LTP test suite shows no sign of + regression. == Test Case == - Run the fanotify10 test in ubuntu_ltp_syscalls test suite. And it will pass with the patched kernel. + Run the fanotify10 test in ubuntu_ltp_syscalls test suite. And it will pass + with the patched kernel. - Full LTP syscalls test with 4.15.0-42 in -proposed: + Full LTP syscalls test with 4.15.0-42 in -proposed: http://paste.ubuntu.com/p/Wm8nQ932g6/ Full LTP syscalls test with patched 4.15.0-42: http://paste.ubuntu.com/p/nv4jW6shpJ/ - ----- - This is a new test case that landed 7 days ago. <<<test_start>>> tag=fanotify10 stime=1541744937 cmdline="fanotify10" contacts="" analysis=exit <<<test_output>>> incrementing stop tst_device.c:230: INFO: Using test device LTP_DEV='/dev/loop1' tst_mkfs.c:90: INFO: Formatting /dev/loop1 with ext2 opts='' extra opts='' mke2fs 1.44.1 (24-Mar-2018) tst_test.c:1085: INFO: Timeout per run is 0h 05m 00s fanotify10.c:199: INFO: Test #0: ignore mount events created on a specific file fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:264: PASS: group 0 (prio 1) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:264: PASS: group 1 (prio 1) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:264: PASS: group 2 (prio 1) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:264: PASS: group 0 (prio 2) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:264: PASS: group 1 (prio 2) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:264: PASS: group 2 (prio 2) with FAN_MARK_MOUNT and FAN_MARK_INODE ignore mask got no event fanotify10.c:199: INFO: Test #1: don't ignore mount events created on another file fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:199: INFO: Test #2: ignore inode events created on a specific mount point fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:258: FAIL: group 0 (prio 1) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:258: FAIL: group 1 (prio 1) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:258: FAIL: group 2 (prio 1) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:258: FAIL: group 0 (prio 2) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:258: FAIL: group 1 (prio 2) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:258: FAIL: group 2 (prio 2) with FAN_MARK_INODE and FAN_MARK_MOUNT ignore mask got event fanotify10.c:199: INFO: Test #3: don't ignore inode events created on another mount point fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 0 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 1 got event: mask 20 pid=2840 fd=15 fanotify10.c:187: PASS: group 2 got event: mask 20 pid=2840 fd=15 Summary: passed 30 failed 6 skipped 0 warnings 0 <<<execution_status>>> initiation_status="ok" duration=1 termination_type=exited termination_id=1 corefile=no cutime=0 cstime=1 <<<test_end>>> ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: linux-image-4.18.0-11-generic 4.18.0-11.12~18.04.1 ProcVersionSignature: User Name 4.18.0-11.12~18.04.1-generic 4.18.12 Uname: Linux 4.18.0-11-generic x86_64 ApportVersion: 2.20.9-0ubuntu7.4 Architecture: amd64 Date: Fri Nov 9 06:24:06 2018 SourcePackage: linux-signed-hwe-edge UpgradeStatus: No upgrade log present (probably fresh install)
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1802454 Title: fanotify10 in ubuntu_ltp_syscalls failed To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-kernel-tests/+bug/1802454/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs