fanotify10 in ubuntu_ltp_syscalls failed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
Confirmed
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
Trusty |
New
|
Undecided
|
Unassigned | ||
Xenial |
New
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Cosmic |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
== 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://
It seems that T/X poses with the same issue and we might be able to backport
it 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 as it's missing commit 47d9c7cc457 in Bionic,
which generalizes the iteration of marks for inode_mark and vfsmount_mark, from:
iter_
to:
iter_
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.
Full LTP syscalls test with 4.15.0-42 in -proposed:
http://
Full LTP syscalls test with patched 4.15.0-42:
http://
-----
This is a new test case that landed 7 days ago.
<<<test_start>>>
tag=fanotify10 stime=1541744937
cmdline=
contacts=""
analysis=exit
<<<test_output>>>
incrementing stop
tst_device.c:230: INFO: Using test device LTP_DEV=
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_
initiation_
duration=1 termination_
cutime=0 cstime=1
<<<test_end>>>
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: linux-image-
ProcVersionSign
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-
UpgradeStatus: No upgrade log present (probably fresh install)
CVE References
Changed in ubuntu-kernel-tests: | |
status: | New → In Progress |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
status: | Incomplete → In Progress |
tags: | added: cosmic trusty xenial |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu Bionic): | |
status: | New → In Progress |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
tags: | added: cscc |
Changed in ubuntu-kernel-tests: | |
status: | In Progress → Confirmed |
assignee: | Po-Hsu Lin (cypressyew) → nobody |
tags: | added: ubuntu-ltp-syscalls |
tags: | added: sru-20200316 |
tags: | added: sru-20200629 sru-20200720 |
Can be reproduced on different kernels.