Linux filesystem development
 help / color / mirror / Atom feed
* Interrupt on readdirplus?
@ 2024-09-10 12:45 Han-Wen Nienhuys
  2024-09-10 15:58 ` Bernd Schubert
  0 siblings, 1 reply; 16+ messages in thread
From: Han-Wen Nienhuys @ 2024-09-10 12:45 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: Miklos Szeredi, Bernd Schubert

Hi there,

I have noticed Go-FUSE test failures of late, that seem to originate
in (changed?) kernel behavior. The problems looks like this:

12:54:13.385435 rx 20: OPENDIR n1  p330882
12:54:13.385514 tx 20:     OK, {Fh 1 }
12:54:13.385838 rx 22: READDIRPLUS n1 {Fh 1 [0 +4096)  L 0 LARGEFILE}  p330882
12:54:13.385844 rx 23: INTERRUPT n0 {ix 22}  p0
12:54:13.386114 tx 22:     OK,  4000b data "\x02\x00\x00\x00\x00\x00\x00\x00"...
12:54:13.386642 rx 24: READDIRPLUS n1 {Fh 1 [1 +4096)  L 0 LARGEFILE}  p330882
12:54:13.386849 tx 24:     95=operation not supported

As you can see, the kernel attempts to interrupt the READDIRPLUS
operation, but go-fuse ignores the interrupt and returns 25 entries.
The kernel somehow thinks that only 1 entry was consumed, and issues
the next READDIRPLUS at offset 1. If go-fuse ignores the faulty offset
and continues the listing (ie. continuing with entry 25), the test
passes.

Is this behavior of the kernel expected or a bug?

I am redoing the API for directory listing to support cacheable and
seekable directories, and in the new version, this looks like a
directory seek. If the file system does not support seekable
directories, I must return some kind of error (which is the ENOTSUP
you can see in the log above).

I started seeing this after upgrading to Fedora 40. My kernel is
6.10.7-200.fc40.x86_64

-- 
Han-Wen Nienhuys - hanwenn@gmail.com - http://www.xs4all.nl/~hanwen

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-09-13 10:36 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-10 12:45 Interrupt on readdirplus? Han-Wen Nienhuys
2024-09-10 15:58 ` Bernd Schubert
2024-09-10 17:38   ` Han-Wen Nienhuys
2024-09-10 19:19     ` Bernd Schubert
2024-09-10 22:03     ` Joanne Koong
2024-09-11  9:47       ` Han-Wen Nienhuys
2024-09-11  9:51         ` Bernd Schubert
2024-09-11 10:07           ` Han-Wen Nienhuys
2024-09-11 10:31             ` Bernd Schubert
2024-09-11 12:08               ` Han-Wen Nienhuys
2024-09-11 13:06                 ` Bernd Schubert
2024-09-11 15:59                   ` Han-Wen Nienhuys
2024-09-11 16:42                     ` Bernd Schubert
2024-09-12 17:26                   ` Han-Wen Nienhuys
2024-09-12 17:48                     ` Bernd Schubert
2024-09-13 10:36                   ` Han-Wen Nienhuys

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox