mountall: potential problem with fuse.ceph
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mountall (Ubuntu) |
New
|
Undecided
|
Unassigned |
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=
But here are the arguments given to /sbin/mount.
id=
As you can see, I have "client_
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] == '/')
else
It's Ubuntu Xenial with mountall version 2.54ubuntu1.
Regards
In fact, the problem is not really embarassing in Ubuntu Xenial because mountall is not used by default to mount the filesystems from fstab. But, for instance, it's really embarassing in Ubuntu Trusty because:
1. the problem is present in Ubuntu Trusty too (the code C is the same on this part),
2. by default, mountall is used in Ubuntu Trusty to mount the file system from fstab at boot.
PS: of course, a workaround possible is to _not_ put "client_ mountpoint= /" at the end like in:
id=cfs, client_ mountpoint= /,keyring= /etc/ceph/ keyring /mnt/ fuse.ceph defaults,_netdev 0 0
which is a valid fstab line too.