Hello Serge,

> ...  This doesn't show me anything.  Can you show the result of:
> 
> mountpoint /proc
> ls -l /proc

proc was really not mounted :-)

We found the "problem" in the C library, which caches the value returned by 
getpid. So what happens is the working, mounted proc gets unmounted, then 
remounted and again unmounted once the container has started. Have a look at 
this code:

In utils.c:

int lxc_mount_proc_if_needed(const char *rootfs)
{
...
        mypid = getpid();
        INFO("I am %d, /proc/self points to \"%s\"", mypid, link);
  
        if (lxc_safe_int(link, &link_to_pid) < 0)
                return -1;

        /* correct procfs is already mounted */
        if (link_to_pid == mypid) <-- 'I am 13379, /proc/self points to "1"'
                return 0;

        ret = umount2(path, MNT_DETACH); <-- UNMOUNT
        if (ret < 0)
                WARN("failed to umount \"%s\" with MNT_DETACH", path);

domount:
        /* rootfs is NULL */
        if (!strcmp(rootfs, ""))
                ret = mount("proc", path, "proc", 0, NULL);
        else
                ret = safe_mount("proc", path, "proc", 0, NULL, rootfs); <-- 
MOUNT
        if (ret < 0)
                return -1;

        INFO("mounted /proc in container for security transition");
        return 1;
}

In conf.c:

int lxc_create_tmp_proc_mount(struct lxc_conf *conf)
{
        int mounted;

        mounted = lxc_mount_proc_if_needed(conf->rootfs.path ? 
conf->rootfs.mount : "");
        if (mounted == -1) {
                SYSERROR("failed to mount /proc in the container");
                /* continue only if there is no rootfs */
                if (conf->rootfs.path)
                        return -1;
        } else if (mounted == 1) {
                conf->tmp_umount_proc = 1; <-- MARK FOR UNMOUNTING
        }

        return 0;
}

I wouldn’t consider this a bug, the C library is just very old 
(uClibc-0.9.33.2).

Thanks for the support,
Todor

> On 7. Jun 2019, at 18:37, Serge E. Hallyn <se...@hallyn.com> wrote:
> 
> On Thu, Jun 06, 2019 at 07:55:04PM +0200, Dr. Todor Dimitrov wrote:
>> Hello,
>> 
>> we have an unprivileged container on LXC 2.1.1, which starts without any 
>> errors. The /proc system is however not available/mounted:
>> 
>> ...
>> drwxr-xr-x    2 root     root          1024 Jul 19  2018 proc
> 
> ...  This doesn't show me anything.  Can you show the result of:
> 
> mountpoint /proc
> ls -l /proc
> 
> ?
> 
>> ...
>> dr-xr-xr-x   12 nobody   nogroup          0 Jun  6 17:13 sys
>> ...
>> 
>> /sys on the other hand is present. The network seems to work, we can login 
>> with lxc-console, only commands which rely on /proc are non-functional, e.g. 
>> mount, ps, etc. The configuration file contains the following line:
>> 
>> lxc.mount.auto = cgroup:rw proc:rw sys:rw
>> 
>> The same configuration runs without any problems on a similar system using 
>> the same kernel version (3.12.59). Suspicious in the logs are the following 
>> entries:
>> 
>>      lxc-start qivicon 20190606172753.696 DEBUG    console - 
>> console.c:lxc_console_peer_default:450 - process does not have a controlling 
>> terminal
>>      lxc-start qivicon 20190606172753.848 INFO     lxc_utils - 
>> utils.c:lxc_mount_proc_if_needed:1758 - I am 13379, /proc/self points to "1"
>>      lxc-start qivicon 20190606172753.848 INFO     lxc_utils - 
>> utils.c:lxc_mount_proc_if_needed:1780 - mounted /proc in container for 
>> security transition
>> 
>> On the "working" system, we see:
>> 
>>      lxc-start qivicon 20190606182855.698 DEBUG    console - 
>> console.c:lxc_console_peer_default:450 - process does not have a controlling 
>> terminal
>>      lxc-start qivicon 20190606182855.731 INFO     lxc_utils - 
>> utils.c:lxc_mount_proc_if_needed:1758 - I am 1, /proc/self points to "1"
>> 
>> 
>> Do you have any ideas what the cause of the problem might be?
> 
> Please post the full logs resulting from lxc-start -l debug -o output_file
> 
> -serge
> _______________________________________________
> lxc-users mailing list
> lxc-users@lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
lxc-users mailing list
lxc-users@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to