You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 09226cf
Browse filesBrowse the repository at this point in the historyBrowse files
fusedev: end the connection when a uring request handler panics
A panic in a request handler unwound the uring worker thread, which
dropped its ring entries while the kernel still held them and could
copy the next request into the freed memory. The worker's queues were
left without entries, so requests from those CPUs waited forever, and so
did the request that panicked.
The worker now catches the panic and stops as it does on an error: it
ends the connection through the fusectl abort file, waits for the kernel
to give the entries back, and then lets the panic go on. It logs the
panic first, because nothing joins the worker thread's panic.
A new test serves a file system whose LOOKUP panics, and checks that
the lookup fails and FuseServing::wait() returns.
Signed-off-by: Ilan Joselevich <personal@ilanjoselevich.com>
0 commit comments