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
Touch seeded packages, 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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to