So while pid1 survives the EMFILES, udevd does not. Working container:

1058  writev(2, [{"rules contain 49152 bytes tokens (4096 * 12 bytes), 13886 
bytes strings", 71}, {"\n", 1}], 2) = 72
[...]
1058  inotify_init1(O_CLOEXEC)          = 8

Failing container:

writev(2, [{"rules contain 49152 bytes tokens (4096 * 12 bytes), 13886 bytes 
strings", 71}, {"\n", 1}], 2rules contain 49152 bytes tokens (4096 * 12 bytes), 
13886 bytes strings
) = 72
[...]
inotify_init1(O_CLOEXEC)                = -1 EMFILE (Too many open files)
writev(2, [{"inotify_init failed: Too many open files", 40}, {"\n", 1}], 
2inotify_init failed: Too many open files
) = 41
writev(2, [{"error initializing inotify", 26}, {"\n", 1}], 2error initializing 
inotify
) = 27
[...]
writev(2, [{"failed to allocate manager object: Cannot allocate memory", 57}, 
{"\n", 1}], 


src/udev/udevd.c, manager_new():

        manager->fd_inotify = udev_watch_init(manager->udev);
        if (manager->fd_inotify < 0)
                return log_error_errno(ENOMEM, "error initializing inotify");

So the "cannot allocate memory" is the wrong error code, but it does
fail because of running out of file descriptors.

** Summary changed:

- deploy 30 nodes on lxd, machines never leave pending
+ when starting many LXD containers, they start failing to boot with "Too many 
open files"

** Changed in: lxd (Ubuntu)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1602192

Title:
  when starting many LXD containers, they start failing to boot with
  "Too many open files"

To manage notifications about this bug go to:
https://bugs.launchpad.net/juju-core/+bug/1602192/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to