Cannot start containers on Arch after upgrade to lxc 1:4.0.11-2 with LTS kernel

Hi,

After the last upgrade of the ‘lxc’ package on Arch linux (from 1:4.0.10-2 to 1:4.0.11-2), lxd doesn’t start the containers anymore (i.e. lxd start fails).

The problem is encountered only on Arch machines with the LTS kernel, the machines with standard kernel are not affected.

Versions:

⏹ [lyderic@nuc ~]$ pacman -Q lxc lxd linux-lts
lxc 1:4.0.11-2
lxd 4.19-1
linux-lts 5.10.75-1

Reproduce:

⏹ [lyderic@nuc ~]$ lxc list bob
+------+---------+------+------+-----------+-----------+
| NAME |  STATE  | IPV4 | IPV6 |   TYPE    | SNAPSHOTS |
+------+---------+------+------+-----------+-----------+
| bob  | STOPPED |      |      | CONTAINER | 4         |
+------+---------+------+------+-----------+-----------+
⏹ [lyderic@nuc ~]$ lxc start bob
Error: Failed to run: /usr/bin/lxd forkstart bob /var/lib/lxd/containers /var/log/lxd/bob/lxc.conf: 
Try `lxc info --show-log bob` for more info
⏹ [lyderic@nuc ~]$ lxc info --show-log bob
Name: bob
Status: STOPPED
Type: container
Architecture: x86_64
Created: 2021/06/29 08:34 BST
Last Used: 2021/10/28 07:36 BST

Snapshots:
[...]

Log:

lxc bob 20211028063616.909 ERROR    start - start.c:core_scheduling:1575 - Invalid argument - The kernel does not support core scheduling
lxc bob 20211028063616.910 ERROR    lxccontainer - lxccontainer.c:wait_on_daemonized_start:867 - Received container state "ABORTING" instead of "RUNNING"
lxc bob 20211028063616.911 ERROR    start - start.c:__lxc_start:2073 - Failed to spawn container "bob"
lxc bob 20211028063616.911 WARN     start - start.c:lxc_abort:1038 - No such process - Failed to send SIGKILL via pidfd 17 for process 998
lxc 20211028063621.989 ERROR    af_unix - af_unix.c:lxc_abstract_unix_recv_fds_iov:218 - Connection reset by peer - Failed to receive response
lxc 20211028063621.989 ERROR    commands - commands.c:lxc_cmd_rsp_recv_fds:127 - Failed to receive file descriptors

Please note that the above works perfectly on a machine that has a standard kernel, i.e. a machine with the following versions:

$ pacman -Q lxc lxd linux
lxc 1:4.0.11-2
lxd 4.19-1
linux 5.14.14.arch1-1

Many thanks for looking into it. For the moment, to make it work, I downgraded the lxc package as follows:

⏹ [lyderic@nuc ~]$ sudo pacman -U "/var/cache/pacman/pkg/lxc-1:4.0.10-2-x86_64.pkg.tar.zst"
loading packages...
warning: downgrading package lxc (1:4.0.11-2 => 1:4.0.10-2)
[...]
⏹ [lyderic@nuc ~]$ pacman -Q lxc lxd linux-lts
lxc 1:4.0.10-2
lxd 4.19-1
linux-lts 5.10.75-1

Please note that this problem is reported as being fixed here. However, it seems to apply only to the standard kernel, not the LTS kernel.

Many thanks.

If I understand correctly, reading the bug report on Github, the issue is fixed indeed, but has not yet been packaged for Arch.

So, contrary to what I thought, the most up-do-date lxc package so far (4.0.11-2) still contains the bug and we should stick to 4.0.10-2 when using LTS kernel until next release of the lxc package (which I supposed will be 4.0.11-3?)

If that’s confirmed, then please consider this as fixed.

It’s the lxd package that needs an update. Lxc added a feature that lxd didn’t support properly. I think the arch maintainer decided to wait for the next lxd release instead of patching the current version. It should be out in a week or so.

Excellent. Many thanks for confirming.
L.

See:

and https://github.com/lxc/lxd/issues/9419#issuecomment-950657812

I saw your comment on GitHub which seems to have been deleted now, but Arch hasn’t gotten the update to lxc and lxd so thats why it doesn’t work yet.

Yes, I assumed originally that only the LXC patch was needed, but then I realized that somewhere in the thread there are more patches mentioned for LXD.
Thats why I removed the comment again :blush:.

Thanks anyway for the info.

I guess that the Arch maintainers will include that, when they have the time.

1 Like

For info, I just updated two machines with LTS kernels to the latest lxd and now all is working.

The following package combination is working for me:

$ pacman -Q lxc lxd lxcfs linux-lts
lxc 1:4.0.11-2
lxd 4.20-1
lxcfs 4.0.11-1
linux-lts 5.10.77-3