[lxc-users] LXC not starting with already mounted LV as read-only mount

Claudio Kuenzler ck at claudiokuenzler.com
Wed Nov 26 10:19:42 UTC 2014


I applied the patch but it does not work for the read only mount.

      lxc-start 1416993491.172 INFO     lxc_conf -
conf.c:check_autodev:3821 - Autodev not required.
      lxc-start 1416993491.172 ERROR    lxc_conf - conf.c:mount_entry:1916
- Device or resource busy - failed to mount '/dev/vglxc/apps' on
'/usr/local/lib/lxc/rootfs/mnt/apps'

I have modified the patch order a bit. Please note that I'm not a developer
so this might be plain wrong:

1901 static int mount_entry(const char *fsname, const char *target,
1902                        const char *fstype, unsigned long mountflags,
1903                        const char *data, int optional)
1904 {
1905 #ifdef HAVE_STATVFS
1906         struct statvfs sb;
1907 #endif
1908
1909         if ((mountflags & MS_REMOUNT) || (mountflags & MS_BIND)) {
1910                 DEBUG("remounting %s on %s to respect bind or remount
options",
1911                       fsname ? fsname : "(none)", target ? target :
"(none)");
1912                 unsigned long rqd_flags = 0;
1913                 if (mountflags & MS_RDONLY)
1914                         rqd_flags |= MS_RDONLY;
1915
1916
1917         else if (mount(fsname, target, fstype, mountflags &
~MS_REMOUNT, data)) {
1918                 if (optional) {
1919                         INFO("failed to mount '%s' on '%s' (optional):
%s", fsname,
1920                              target, strerror(errno));
1921                         return 0;
1922                 }
1923                 else {
1924                         SYSERROR("failed to mount '%s' on '%s'",
fsname, target);
1925                         return -1;
1926                 }
1927         }
1928
1929 #ifdef HAVE_STATVFS

This time the LV was mounted:

      lxc-start 1416996121.708 INFO     lxc_conf -
conf.c:check_autodev:3823 - Autodev not required.
      lxc-start 1416996121.708 DEBUG    lxc_conf - conf.c:mount_entry:1975
- mounted '/dev/vglxc/apps' on '/usr/local/lib/lxc/rootfs/mnt/apps', type
'ext4'
      lxc-start 1416996121.708 INFO     lxc_conf -
conf.c:mount_file_entries:2224 - mount points have been setup

But I got different errors - which could be because of the modified code or
because of something else:

      lxc-start 1416996121.730 DEBUG    lxc_conf -
conf.c:setup_rootfs_pivot_root:1082 - pivot_root syscall to
'/usr/local/lib/lxc/rootfs' successful
      lxc-start 1416996121.731 INFO     lxc_conf - conf.c:setup_pts:1641 -
created new pts instance
      lxc-start 1416996121.731 INFO     lxc_conf -
conf.c:setup_personality:1658 - set personality to '0x0'
      lxc-start 1416996121.731 ERROR    lxc_conf - conf.c:setup_caps:2339 -
unknown capability mac_admin
      lxc-start 1416996121.731 ERROR    lxc_conf - conf.c:lxc_setup:4174 -
failed to drop capabilities
      lxc-start 1416996121.731 ERROR    lxc_start - start.c:do_start:688 -
failed to setup the container
      lxc-start 1416996121.731 ERROR    lxc_sync - sync.c:__sync_wait:51 -
invalid sequence number 1. expected 2
      lxc-start 1416996121.731 WARN     lxc_conf -
conf.c:lxc_delete_network:3175 - failed to remove interface '(null)'
      lxc-start 1416996121.758 ERROR    lxc_start -
start.c:__lxc_start:1088 - failed to spawn 'mycontainer'
      lxc-start 1416996121.759 WARN     lxc_commands -
commands.c:lxc_cmd_rsp_recv:172 - command get_init_pid failed to receive
response
      lxc-start 1416996121.759 WARN     lxc_cgmanager -
cgmanager.c:cgm_get:963 - do_cgm_get exited with error
      lxc-start 1416996126.764 ERROR    lxc_start_ui - lxc_start.c:main:342
- The container failed to start.
      lxc-start 1416996126.765 ERROR    lxc_start_ui - lxc_start.c:main:344
- To get more details, run the container in foreground mode.
      lxc-start 1416996126.765 ERROR    lxc_start_ui - lxc_start.c:main:346
- Additional information can be obtained by setting the --logfile and
--logpriority options.

Will try to redo this in a clean installation.

On Wed, Nov 26, 2014 at 7:31 AM, Claudio Kuenzler <ck at claudiokuenzler.com>
wrote:

> I've read that mailing list post yesterday, too and was actually hoping
> this could solve the mount issue. When I looked at it, it seems that this
> patch hasnt been merged into the github repo yet, correct?
>
> Will try it and let you know.
> On Nov 26, 2014 6:35 AM, "Serge Hallyn" <serge.hallyn at ubuntu.com> wrote:
>
>> Quoting Claudio Kuenzler (ck at claudiokuenzler.com):
>> > Hello all,
>> >
>> > OS: Ubuntu 14.04.1 LTS
>> > LXC Version: 1.0.6-0ubuntu0.1
>> >
>> > Experienced a weird issue when I tried to launch a container which
>> mounts
>> > an additional logical volume (ext4 formatted) through the container's
>> fstab
>> > file:
>> >
>> > # cat /var/lib/lxc/mycontainer/fstab
>> > /dev/vglxc/apps mnt/apps ext4 ro 0 0
>> >
>> > This LV is already mounted on the physical host:
>> >
>> > # mount /dev/vglxc/apps /mnt
>> >
>> > Now when I try to launch the container, I get the following error:
>> >
>> > # lxc-start -n mycontainer -l trace -o mycontainer.out
>> > lxc-start: Device or resource busy - failed to mount '/dev/vglxc/apps'
>> on
>> > '/usr/lib/x86_64-linux-gnu/lxc/mnt/apps'
>> > lxc-start: failed to setup the mounts for 'mycontainer'
>> > lxc-start: failed to setup the container
>> > lxc-start: invalid sequence number 1. expected 2
>> > lxc-start: failed to spawn 'mycontainer'
>> > lxc-start: The container failed to start.
>> > lxc-start: Additional information can be obtained by setting the
>> --logfile
>> > and --logpriority options.
>> >
>> > In the output file the following information is shown:
>> >
>> >       lxc-start 1416921918.699 INFO     lxc_conf - Autodev not required.
>> >       lxc-start 1416921918.699 ERROR    lxc_conf - Device or resource
>> busy
>> > - failed to mount '/dev/vglxc/apps' on
>> > '/usr/lib/x86_64-linux-gnu/lxc/mnt/apps'
>> >       lxc-start 1416921918.699 ERROR    lxc_conf - failed to setup the
>> > mounts for 'mycontainer'
>> >
>> > When I change the mount option in the container's fstab file from "ro"
>> to
>> > "defaults"  (or basically "rw"), the container starts up:
>> >
>> > # cat /var/lib/lxc/mycontainer/fstab
>> > /dev/vglxc/apps mnt/apps ext4 defaults 0 0
>> >
>> > # lxc-start -n mycontainer -l trace -o mycontainer.out
>> >
>> >       lxc-start 1416921799.912 INFO     lxc_conf - Autodev not required.
>> >       lxc-start 1416921799.912 DEBUG    lxc_conf - mounted
>> > '/dev/vglxc/apps' on '/usr/lib/x86_64-linux-gnu/lxc/mnt/apps', type
>> 'ext4'
>> >
>> > If the LV /dev/vglxc/apps is nowhere mounted yet, the container starts
>> up -
>> > with the read only mount option, too.
>> >
>> > Is this a (known) bug I ran into?
>>
>> I think it is.  Can you please try with this patch:
>>
>>
>> https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010876.html
>>
>> applied?
>> _______________________________________________
>> lxc-users mailing list
>> lxc-users at lists.linuxcontainers.org
>> http://lists.linuxcontainers.org/listinfo/lxc-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20141126/28bcd76d/attachment.html>


More information about the lxc-users mailing list