FS#67773 - [containerd] version 1.4.0-2 break docker
Attached to Project:
Community Packages
Opened by Sébastien Luttringer (seblu) - Sunday, 30 August 2020, 18:45 GMT
Last edited by Morten Linderud (Foxboron) - Friday, 11 September 2020, 22:44 GMT
Opened by Sébastien Luttringer (seblu) - Sunday, 30 August 2020, 18:45 GMT
Last edited by Morten Linderud (Foxboron) - Friday, 11 September 2020, 22:44 GMT
|
Details
Description:
New release of containerd breaks docker containers management. 1) heath check is reported unhealthy while image are running fine. 2) docker stop doesn't not really stop the container and make it unable to restart. 3) systemctl stop/kill left processes running on the system. BBS thead: https://bbs.archlinux.org/viewtopic.php?pid=1922020#p1922020 Upstream report: https://github.com/containerd/containerd/issues/4509 |
Closed by Morten Linderud (Foxboron)
Friday, 11 September 2020, 22:44 GMT
Reason for closing: Fixed
Additional comments about closing: 1.4.0-3
Friday, 11 September 2020, 22:44 GMT
Reason for closing: Fixed
Additional comments about closing: 1.4.0-3
* Install containerd 1.4.0-2, docker 1:19.03.12-2, docker-compose 1.26.2-1
* Set up some docker containers with e.g. docker-compose
In my case a Nginx (Alpine Linux), MySQL (Debian-10-Slim), Postgres and a PHP application were deployed with docker-compose.
* Wait about 1h, now all containers change from healthy to unhealthy and other bad things mentioned in bug above appearing.
* Download latest containerd from 1.3 tree: https://containerd.io/downloads/
* Unpack archive in /usr/local - this should end up with at least /usr/local/bin/containerd
* # /usr/local/bin/containerd --version should display "containerd github.com/containerd/containerd v1.3.5 9b6f3ec0307a825c38617b93ad55162b5bb94234"
* cp -a /usr/lib/systemd/system/containerd.service /usr/lib/systemd/system/containerd.service.BAK
* Patch ExecStart in /usr/lib/systemd/system/containerd.service to ExecStart=/usr/local/bin/containerd
* reboot
Now you got a working Docker platform until a working version 1.4 of containerd is available.
https://pkgbuild.com/~foxboron/repos/containerd/
`pacman -U https://pkgbuild.com/~foxboron/repos/containerd/containerd-1.4.0-3-x86_64.pkg.tar.zst`
It's compiled without `-buildmode=pie` and I wonder if the health checks are race collision related. This isn't checked during the tests and `-buildmode=pie` and `-race` are strictly forbidden.
Also there is a discussion started on this issue recently in moby repository.
https://github.com/moby/moby/issues/41410
It is presumed by thaJeztah that go1.14.5 shoudn't be used to build docker, runc, or containerd as it is problematic.
The moby issue is containerd related and linking this around does nothing but create noise for upstream.
EDIT: Please be useful and read the bug report in full.
Thanks for pointing out and sorry for being useless.
https://pkgbuild.com/~foxboron/repos/containerd/containerd-1.4.0-3.5-x86_64.pkg.tar.zst
Try this and please check. I'll bisect the thing when I have time.
Can't really run it for a long time in this state, have to revert to older containerd.
After 5 minutes with the latest containerd:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
5945158458af pihole 100.30% 254.5MiB / 31.22GiB 0.80% 1.96MB / 49.6kB 0B / 22.2MB 20
With containerd 1.3.4-2:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
5945158458af pihole 0.05% 18.24MiB / 31.22GiB 0.06% 1.94MB / 56.2kB 0B / 22.9MB 20
Other containers memory consumption and CPU usage seems to be OK.
One of my custom containers refused to start with 1.4, can't debug that now, unfortunately.
https://pkgbuild.com/~foxboron/repos/containerd/containerd-1.4.0-2.5-x86_64.pkg.tar.zst
This package has the following patches applied
https://github.com/containerd/containerd/pull/4519
https://github.com/containerd/containerd/pull/4546
Will check in the morning.
Resource consumption is normal, health checks are working.