[Bug 1588594] [NEW] mountall: potential problem with fuse.ceph
Francois Lafont
1588594 at bugs.launchpad.net
Fri Jun 3 03:40:22 UTC 2016
Public bug reported:
Hi,
Here is a perfectly valid fstab line to mount a fuse.ceph filesystem
(it's a distributed file system but no importance here):
id=cfs,keyring=/etc/ceph/keyring,client_mountpoint=/ /mnt/ fuse.ceph
defaults,_netdev 0 0
But here are the arguments given to /sbin/mount.fuse.ceph by mountall:
id=cfs,keyring=/etc/ceph/keyring,client_mountpoint= /mnt -o
rw,_netdev
As you can see, I have "client_mountpoint=" but it should be
"client_mountpoint=/" (with the / at the end). The trailing "/" has been
removed and in this case it's a bad idea. The mount at boot just fails
because "client_mountpoint=" is not correct.
In fact, the problem is in src/mountall.c around line 569:
char *colon;
dequote (mnt->device);
/* If our device name is in host:/path format, as is
* commonly used for network filesystems, don't strip
* trailing slashes if this is the entire path. We
* look for the colon starting from the end, so that
* we correctly handle IPv6 addresses for the host
* part.
*/
if ((colon = strrchr (mnt->device,':')) != NULL
&& colon[1] == '/')
strip_slashes (colon + 2);
else
strip_slashes (mnt->device); // <==== bad idea in the specific case of fuse.ceph filesystem
It's Ubuntu Xenial with mountall version 2.54ubuntu1.
Regards
** Affects: mountall (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mountall in Ubuntu.
https://bugs.launchpad.net/bugs/1588594
Title:
mountall: potential problem with fuse.ceph
Status in mountall package in Ubuntu:
New
Bug description:
Hi,
Here is a perfectly valid fstab line to mount a fuse.ceph filesystem
(it's a distributed file system but no importance here):
id=cfs,keyring=/etc/ceph/keyring,client_mountpoint=/ /mnt/
fuse.ceph defaults,_netdev 0 0
But here are the arguments given to /sbin/mount.fuse.ceph by mountall:
id=cfs,keyring=/etc/ceph/keyring,client_mountpoint= /mnt -o
rw,_netdev
As you can see, I have "client_mountpoint=" but it should be
"client_mountpoint=/" (with the / at the end). The trailing "/" has
been removed and in this case it's a bad idea. The mount at boot just
fails because "client_mountpoint=" is not correct.
In fact, the problem is in src/mountall.c around line 569:
char *colon;
dequote (mnt->device);
/* If our device name is in host:/path format, as is
* commonly used for network filesystems, don't strip
* trailing slashes if this is the entire path. We
* look for the colon starting from the end, so that
* we correctly handle IPv6 addresses for the host
* part.
*/
if ((colon = strrchr (mnt->device,':')) != NULL
&& colon[1] == '/')
strip_slashes (colon + 2);
else
strip_slashes (mnt->device); // <==== bad idea in the specific case of fuse.ceph filesystem
It's Ubuntu Xenial with mountall version 2.54ubuntu1.
Regards
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/1588594/+subscriptions
More information about the foundations-bugs
mailing list