As far as I can tell, when using the FUSE transport and unmounting the filesystem with "fusermount3 -u", this results in FuseChannel's get_request method to fail when calling self.poll.poll. This error is then wrapped into a string and returned as a SessionFailure:
https://github.com/cloud-hypervisor/fuse-backend-rs/blob/master/src/transport/fusedev/linux_session.rs#L340
This makes it very hard to handle this normal event in a graceful manner. Is there anything I'm missing? Is there any way to detect when this happens other than attempting to parse the error string returned by get_requests?