New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mount.fuse.ceph: strip the 'nofail' option from those that fuse will see #52834
Conversation
Signed-off-by: Leonid Usov <leonid.usov@ibm.com> Fixes: https://tracker.ceph.com/issues/58394
@ceph/cephfs |
# - nofail option is also not recognized by libfuse. | ||
# Starting with fuse 3.2.2 the option is also ignored by mount.fuse, see | ||
# https://github.com/libfuse/libfuse/commit/a83cd72f641671b71b8268b1765e449cae071f3e | ||
strip_opts = ['defaults', 'noauto', '_netdev', 'nofail'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this approach is correct. Just one question - In the redmine tracker you put
I'll submit a patch that does the same on our side, for versions of fuse < 3.2.2
So, I expected to see some form for version check somewhere. What am I missing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I should add comment or edit that message on the tracker. The thing is, when implementing this, I realized that I should not be checking the version as the fix from the library is only affecting users of their supplied mount.fuse
helper. In our case, we won't be calling through their mount helper, we are using our own. As a result, the correct approach should be filtering this option unconditionally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense. Thx for explaining.
Integration branch - https://shaman.ceph.com/builds/ceph/wip-vshankar-testing-20230808.093601/ Test runs in ~3 hrs. |
@vshankar do I understand correctly that this has passed the tests? What else is needed before we can merge? |
Still under testing - https://pulpito.ceph.com/?branch=wip-vshankar-testing-20230808.093601 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes: https://tracker.ceph.com/issues/58394
The research of this problem has shown that stripping the option from the list that is sent to libfuse is the correct approach.
libfuse themselves took this route in libfuse/libfuse@a83cd72.
The kernel mainly uses the option to decide how to treat errors during the boot process or mount -a. While I can't say whether some file systems overload this option with internal functionality, it's not used by the libfuse.
More info:
#26992
systemd/systemd#5032
https://access.redhat.com/discussions/4976921
https://furorteutonicus.eu/2013-08-29-nofail-and-nobootwait-mount-options-in-fstab-prevent-boot-problems
OpenMediaVault-Plugin-Developers/openmediavault-unionfilesystems#36
https://linux.die.net/man/8/mount
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows