LTP syscalls epoll_ctl02 is failing on Linux next master. The reported problem is always reproducible and starts from next-20221205.
GOOD tag: next-20221202 BAD tag: next-20221205
tst_test.c:1524: TINFO: Timeout per run is 0h 05m 00s epoll_ctl02.c:87: TPASS: epoll_clt(...) if epfd is an invalid fd : EBADF (9) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd does not support epoll : EPERM (1) epoll_ctl02.c:87: TFAIL: epoll_clt(...) if fd is an invalid fd expected EBADF: EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if op is not supported : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is the same as epfd : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if events is NULL : EFAULT (14) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_DEL : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_MOD : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is already registered with EPOLL_CTL_ADD : EEXIST (17)
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Test results: https://lkft.validation.linaro.org/scheduler/job/5931196#L1367 https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221207/tes... https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221205/tes...
Test results comparison: https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221207/tes...
metadata: git_ref: master git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next git_sha: ee9bda616d36d2dc864aa294c2656fad88c9efa0 git_describe: next-20221205 kernel_version: 6.1.0-rc7 kernel-config: https://builds.tuxbuild.com/2ITqQKvBJSwcIYKcYvEdPjjrw64/config build-url: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next/-/pipelines/713047540 artifact-location: https://builds.tuxbuild.com/2ITqQKvBJSwcIYKcYvEdPjjrw64 toolchain: gcc-11
-- Linaro LKFT https://lkft.linaro.org
On 12/7/22 8:58?AM, Naresh Kamboju wrote:
LTP syscalls epoll_ctl02 is failing on Linux next master. The reported problem is always reproducible and starts from next-20221205.
GOOD tag: next-20221202 BAD tag: next-20221205
tst_test.c:1524: TINFO: Timeout per run is 0h 05m 00s epoll_ctl02.c:87: TPASS: epoll_clt(...) if epfd is an invalid fd : EBADF (9) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd does not support epoll : EPERM (1) epoll_ctl02.c:87: TFAIL: epoll_clt(...) if fd is an invalid fd expected EBADF: EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if op is not supported : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is the same as epfd : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if events is NULL : EFAULT (14) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_DEL : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_MOD : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is already registered with EPOLL_CTL_ADD : EEXIST (17)
This should fix it:
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index ec7ffce8265a..de9c551e1993 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -2195,6 +2195,7 @@ int do_epoll_ctl(int epfd, int op, int fd, struct epoll_event *epds, }
/* Get the "struct file *" for the target file */ + error = -EBADF; tf = fdget(fd); if (!tf.file) goto error_fput;
On Wed, 7 Dec 2022 at 17:22, Jens Axboe axboe@kernel.dk wrote:
On 12/7/22 8:58?AM, Naresh Kamboju wrote:
LTP syscalls epoll_ctl02 is failing on Linux next master. The reported problem is always reproducible and starts from next-20221205.
GOOD tag: next-20221202 BAD tag: next-20221205
tst_test.c:1524: TINFO: Timeout per run is 0h 05m 00s epoll_ctl02.c:87: TPASS: epoll_clt(...) if epfd is an invalid fd : EBADF (9) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd does not support epoll : EPERM (1) epoll_ctl02.c:87: TFAIL: epoll_clt(...) if fd is an invalid fd expected EBADF: EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if op is not supported : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is the same as epfd : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if events is NULL : EFAULT (14) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_DEL : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_MOD : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is already registered with EPOLL_CTL_ADD : EEXIST (17)
This should fix it:
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index ec7ffce8265a..de9c551e1993 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -2195,6 +2195,7 @@ int do_epoll_ctl(int epfd, int op, int fd, struct epoll_event *epds, }
/* Get the "struct file *" for the target file */
error = -EBADF; tf = fdget(fd); if (!tf.file) goto error_fput;
Yes this patch fixed the issue [1].
Cheers, Anders [1] https://lkft.validation.linaro.org/scheduler/job/5931365#L1371
On 12/7/22 3:27 PM, Anders Roxell wrote:
On Wed, 7 Dec 2022 at 17:22, Jens Axboe axboe@kernel.dk wrote:
On 12/7/22 8:58?AM, Naresh Kamboju wrote:
LTP syscalls epoll_ctl02 is failing on Linux next master. The reported problem is always reproducible and starts from next-20221205.
GOOD tag: next-20221202 BAD tag: next-20221205
tst_test.c:1524: TINFO: Timeout per run is 0h 05m 00s epoll_ctl02.c:87: TPASS: epoll_clt(...) if epfd is an invalid fd : EBADF (9) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd does not support epoll : EPERM (1) epoll_ctl02.c:87: TFAIL: epoll_clt(...) if fd is an invalid fd expected EBADF: EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if op is not supported : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is the same as epfd : EINVAL (22) epoll_ctl02.c:87: TPASS: epoll_clt(...) if events is NULL : EFAULT (14) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_DEL : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is not registered with EPOLL_CTL_MOD : ENOENT (2) epoll_ctl02.c:87: TPASS: epoll_clt(...) if fd is already registered with EPOLL_CTL_ADD : EEXIST (17)
This should fix it:
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index ec7ffce8265a..de9c551e1993 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -2195,6 +2195,7 @@ int do_epoll_ctl(int epfd, int op, int fd, struct epoll_event *epds, }
/* Get the "struct file *" for the target file */
error = -EBADF; tf = fdget(fd); if (!tf.file) goto error_fput;
Yes this patch fixed the issue [1].
Cheers, Anders [1] https://lkft.validation.linaro.org/scheduler/job/5931365#L1371
Great, thanks for confirming. I did queue up the fix.