https://github.com/cberner/fuser/pull/154 (Ensure that Filesystem.destroy() is always called) made destroy() an exactly once method for Session, but BackgroundSession still relies on the ll::Operation::Destroy request to be received from the kernel.
We have an issue where an OverlayFS unmount is failing, and this somehow causes a subsequent FUSE unmount to not send back ll::Operation::Destroy so the .destroy() method is never run, and some teardown code of ours inside it isn't executed.
It seems desirable that both Session and BackgroundSession support running destroy() exactly once. Is this feasible?
I haven't been working on fuser very actively, recently, but ya that seems desirable to call it exactly once in both cases. So ya, if you find a good way to implement that I'm happy to merge it.
https://github.com/cberner/fuser/pull/154 (Ensure that Filesystem.destroy() is always called) made
destroy()
an exactly once method forSession
, butBackgroundSession
still relies on thell::Operation::Destroy
request to be received from the kernel.We have an issue where an OverlayFS unmount is failing, and this somehow causes a subsequent FUSE unmount to not send back
ll::Operation::Destroy
so the.destroy()
method is never run, and some teardown code of ours inside it isn't executed.It seems desirable that both
Session
andBackgroundSession
support runningdestroy()
exactly once. Is this feasible?I'm happy to take a crack at the change.