[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