[MIR] containerd

Bug #1819761 reported by Andreas Hasenack
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
containerd (Ubuntu)
Fix Released
Undecided
Unassigned
containerd-app (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

[Availability]
The containerd package is available in Ubuntu Universe, and builds for amd64,
arm64, armhf, i386, ppc64el, s390x
It has been available since at least Yakkety in mid 2016:
https://launchpad.net/ubuntu/+source/containerd/+publishinghistory

[Rationale]
containerd controls runC (which is the subject of MIR bug #1817336).

From their github page (https://github.com/containerd/containerd): "containerd
is an industry-standard container runtime with an emphasis on simplicity,
robustness and portability."

The "industry standard" bit is about OCI (Open Container Initiative:
https://www.opencontainers.org/).

[Security]
- CVE: there are no CVEs for it currently: http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=containerd
- Ubuntu CVE tracker for universe also shows no hits: https://people.canonical.com/~ubuntu-security/cve/universe.html
- one hit in the OSS security mailing list about CVE-2019-5736 (the runC
  vulnerability): https://www.openwall.com/lists/oss-security/2019/02/11/2
- no suid/sgid binaries
- executables are in /usr/bin as expected
- the package installs a systemd service and the daemon runs as root, at least
  initially: /lib/systemd/system/containerd.service
- the service by default listens on a localhost socket:
tcp 0 0 127.0.0.1:39301 0.0.0.0:* LISTEN 21114/containerd
- the service also listens on a unix socket, available only to root:
srw-rw---- 1 root root 0 Feb 22 15:54 /run/containerd/containerd.sock

[Quality assurance]
After installing the package it must be possible to make it working with a
reasonable effort of configuration and documentation reading.
- the service starts after installation without errors, and since no default
config file is shipped, it assumes defaults on its own. A quick check with the
unsupported bundled ctr(1) tool shows the service is live:

root@disco-runc:~# ctr images list
REF TYPE DIGEST SIZE PLATFORMS LABELS
root@disco-runc:~#

The DEP8 test can also be run manually right after installation: http://paste.ubuntu.com/p/KHh37hZYTb/

There are no debconf questions.

Bugs:
- upstream issues: https://github.com/containerd/containerd/issues
  - 110 open
  - 657 closed
- two bugs in debian (https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=containerd):
  - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855922
    - "containerd: 0.2.3 ds1-1 breaks docker 1.11 - unable to start containerd"
    - seems closed
  - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863248
    - "containerd 0.2.3+git20170126.85.aa8187d~ds1-1: container not started (docker.io 1.13.0~ds1-3)"
    - unanswered for > 1y
- no open bugs in Ubuntu at the moment: https://bugs.launchpad.net/ubuntu/+source/containerd
- 4 closed bugs in ubuntu:
  - https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1574904
    - "Old clients cannot talk to Docker in 16.04"
  - https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1602243
    - "[16.10 FEAT] Upgrade Docker to newest version 1.12"
  - https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1655906
    - "Please upgrade docker.io to latest 1.12.6"
  - https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1711935
    - "failing to start on ppc64el: R_PPC64_ADDR16_HA 277ef287d88 for symbol `' out of range"

Debian PTS:
https://packages.qa.debian.org/c/containerd.html
https://tracker.debian.org/pkg/containerd (new tracker)
- a few lintian warnings
- debian is behind upstream (0.2.3 vs 1.2.4)
- debian experimental has a 1.2.4 upload (Ubuntu Disco has 1.2.2):
  - first upload since 2017-08-08
  - https://packages.qa.debian.org/c/containerd/news/20190220T120012Z.html
- package is out of date regarding the debian policy
- excuses page looks bad:
  https://qa.debian.org/excuses.php?package=containerd
  "581 old (needed 10 days)"
- Updating containerd 0.2.3 introduces new bugs: #855922, #857819, #863248, #923431
  It's unclear if the 1.2.4 version in experimental is better.

The package should not deal with exotic hardware which we cannot support.
- no exotic hardware involved

Tests:
- there is a basic smoke DEP8 test which downloads a docker container and runs a command in it
  http://autopkgtest.ubuntu.com/packages/containerd
- the package also runs tests during package build time, except on armhf:
  https://launchpadlibrarian.net/411349928/buildlog_ubuntu-disco-amd64.containerd_1.2.2-0ubuntu3_BUILDING.txt.gz
  (search for dh_auto_test)

debian/watch:
- a debian/watch file is provided, and it works:
ubuntu@disco-runc:~/deb/containerd/containerd$ uscan
uscan: Newest version of containerd on remote site is 1.2.4, local version is 1.2.2
uscan: => Newer package available from
      https://github.com/containerd/containerd/archive/v1.2.4.tar.gz
Successfully symlinked ../containerd-1.2.4.tar.gz to ../containerd_1.2.4.orig.tar.gz.

Full lintian:
- lintian -I --pedantic output: http://paste.ubuntu.com/p/FXkPKnxZdF/
- I would highlight:
  - problems with d/copyright
  - missing build-depends
  - out of date standards
  - some cleanups needed in the -dev package (perms, .git dirs)
  - binaries with no manpages

The package should not rely on obsolete or about to be demoted packages. That
currently includes package dependencies on Python2 (without providing Python3
packages), and packages depending on GTK2.
- none seen

[UI standards]
There is no i18n for containerd.

[Dependencies]
Runtime dependencies are in main with the exception of runc, subject of another MIR (1817336)
- the package has one golang build dependencies that comes from Universe: go-md2man.
  That package itself has other golang build dependencies that are in Universe.
  The MIR team currently seems to have an understanding
  (https://wiki.ubuntu.com/MIRTeam#golang) that that is acceptable, but subject
  to a case-by-case analysis to avoid populating main with too many packages
  like this.
- there are no python{2,3} or GTK2 dependencies

[Standards compliance]
- the package is behind in its declaration of standards compliance: 3.9.7 vs 4.3.0
- golang-github-docker-containerd-dev, a binary package produced by the
  containerd source, has tons of golang source code shipped in
  /usr/share/gocode/src. These are basically checkouts of full source code
  trees of several projects. There are currently no reverse-depends for this
  package, so it can probably be placed in Universe. This package is also where
  many of the lintian issues come from.
- FHS is fine otherwise (I'm not sure if the above is an FHS violation)
- golang buildsystem is "odd". From d/rules, for example:

override_dh_auto_configure:
        # copy pristine source for "/usr/share/gocode" to get into "golang-github-containerd-containerd-dev" before we muddy it with build artifacts, etc
        mkdir -p .pristine-source
        tar -c --exclude=debian --exclude=.pc --exclude=.pristine-source . | tar -xC .pristine-source
        # set up GOPATH symlink farm
        mkdir -p '$(OUR_GOPATH)/src/github.com/containerd'
        ln -sfT '$(CURDIR)' '$(OUR_GOPATH)/src/github.com/containerd/containerd'

[Maintenance]
All packages must have a designated "owning" team, regardless of complexity,
which is set as a package bug contact.
- TBD

This package is definitely important in the container ecosystem. It drives other runtimes (runc, docker), and is driven by other projects (k8s).

[Background information]
None at this time.

Revision history for this message
Joshua Powers (powersj) wrote :

ubuntu-server is now subscribed to bugs

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

I see no obvious issues with the package, but it's huge and would benefit the Security Team reviewing it as well.

Changed in containerd (Ubuntu):
assignee: nobody → Ubuntu Security Team (ubuntu-security)
Revision history for this message
Seth Arnold (seth-arnold) wrote :

The lintian errors appear to have been drastically reduced in the interim:

E: containerd source: missing-build-dependency-for-dh-addon systemd => debhelper (>= 9.20160709~) | debhelper-compat | dh-sequence-systemd || dh-systemd
W: containerd source: vcs-obsolete-in-debian-infrastructure vcs-git https://anonscm.debian.org/git/pkg-go/packages/containerd.git
W: containerd source: vcs-obsolete-in-debian-infrastructure vcs-browser https://anonscm.debian.org/cgit/pkg-go/packages/containerd.git
E: containerd: init.d-script-not-included-in-package etc/init.d/containerd
W: containerd: manpage-has-bad-whatis-entry usr/share/man/man1/containerd-config.1.gz
W: containerd: manpage-has-bad-whatis-entry usr/share/man/man1/containerd.1.gz
W: containerd: manpage-has-bad-whatis-entry usr/share/man/man1/ctr.1.gz
W: containerd: manpage-has-bad-whatis-entry usr/share/man/man5/containerd-config.toml.5.gz
W: containerd: binary-without-manpage usr/bin/containerd-shim
W: containerd: binary-without-manpage usr/bin/containerd-shim-runc-v1
W: containerd: binary-without-manpage usr/bin/containerd-stress
W: golang-github-docker-containerd-dev: package-contains-vcs-control-file usr/share/gocode/src/github.com/containerd/containerd/.gitignore
W: golang-github-docker-containerd-dev: package-contains-vcs-control-file usr/share/gocode/src/github.com/containerd/containerd/docs/.gitignore
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/runtime/linux/runctypes/1.0.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/runtime/linux/runctypes/next.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/windows/hcsshimtypes/next.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/windows/hcsshimtypes/1.0.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/api/1.1.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/api/1.2.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/api/1.0.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/runtime/v2/runc/options/next.pb.txt
W: golang-github-docker-containerd-dev: executable-not-elf-or-script usr/share/gocode/src/github.com/containerd/containerd/api/next.pb.txt

Thanks

Revision history for this message
Seth Arnold (seth-arnold) wrote :

There's roughly half-million lines of code in vendor/ -- we have asked for Go packages to have their vendored code split out into their own packages to simplify triage, fixing, and minimize rebuilding:

https://wiki.ubuntu.com/MIRTeam#Embedded_sources_and_static_linking

$ tokei vendor
-------------------------------------------------------------------------------
 Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
 Assembly 53 4127 3808 0 319
 C 18 2337 1481 502 354
 C Header 3 61 42 10 9
 Go 1773 625922 495922 74801 55199
 Markdown 86 9461 9461 0 0
 Protocol Buffers 34 11593 3103 6908 1582
 Plain Text 4 673 673 0 0
-------------------------------------------------------------------------------
 Total 1971 654174 514490 82221 57463
-------------------------------------------------------------------------------

Thanks

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Thanks for the review, Seth. Just to be clear, you are asking for the golang vendored bits to be split into their own packages (if not already available in the archive), and switch to shared linking for them?

Revision history for this message
Seth Arnold (seth-arnold) wrote :

Andreas, yes; we'd like to you build using golang -dev packages and not build the vendored code. There's no need to repack the orig tarball and no need to switch to dynamic linking.

(The golang -dev packages allow us to track when packages need rebuilding through the Built-Using mechanism.)

Thanks

Revision history for this message
Seth Arnold (seth-arnold) wrote :

There's a handful of text files that are marked executable:

-rwxr-xr-x root/root 91142 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/api/1.0.pb.txt
-rwxr-xr-x root/root 91089 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/api/1.1.pb.txt
-rwxr-xr-x root/root 91701 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/api/1.2.pb.txt
-rwxr-xr-x root/root 91701 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/api/next.pb.txt
-rwxr-xr-x root/root 3719 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/runtime/linux/runctypes/1.0.pb.txt
-rwxr-xr-x root/root 3735 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/runtime/linux/runctypes/next.pb.txt
-rwxr-xr-x root/root 2806 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/runtime/v2/runc/options/next.pb.txt
-rwxr-xr-x root/root 3647 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/windows/hcsshimtypes/1.0.pb.txt
-rwxr-xr-x root/root 3647 2019-04-05 18:39 ./usr/share/gocode/src/github.com/containerd/containerd/windows/hcsshimtypes/next.pb.txt

Thanks

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

This is in the security Teams review queue (which is the proper next step).
Thanks Seth for all your work on this already.

I wanted to summarize after the discussion about Go-vendoring at the recent sprint:

- we expect (as in Docker) to handle runc/containerd special for SRUs providing an upstream experience which means regular MRE updates.

- due to that over time we will have to move the GO dependencies forward which we can't for de-vendorized packages

- Therefore it was agreed that we will do an initial check if a few could be used de-vendorized that are already done (e.g. due to former LXD activities) but not de-vendorize/MIR new packages.

- We will provide a list of used vendorized code and tags/commits of it to security for their tracking for alerts

- Going forward on updates we will check if some of them will then have to switch from de-vendorized to vendorized code. In that case we will keep security updated with the new list of vendored code for their tracking for alerts.

-- TODOs (other than the ongoing security review) ---

@Andreas will at some point do a check which (of the many) dependencies could (right now) be used from pre-de-vendorized packages - security had a particular interest in golang-golang-x-crypto-dev which was already in main for Juju (bug 1267393) but no more has a dep holding it in at the moment. A bunch more are in bug 1711317 bug 1520679 bug 1711265
That will hopefully help Seth and the half-million LOC at least a bit as maybe at least a few can be skiped.

@Andreas - the txt files (see comment #7) with executable should be fixable either in the upstream build system or as a safety cleanup in d/rules - could you take a look at these as well?

Revision history for this message
Lucas Kanashiro (lucaskanashiro) wrote :
Download full text (24.4 KiB)

# containerd - vendorized dependencies

Here is an overall analysis of the vendorized deps in containerd version 1.3.1-0ubuntu1.

## Summary:

- Total of 85 vendorized deps
    + None of them has a correspondent package in main
- 18 vendorized deps without correspondent package in the archive
- 28 vendorized deps match version with packages in universe
- 13 vendorized deps with version greater than the correspondent package in
  universe
    + Those packages might need update
- 26 vendorized deps with version lower than the correspondent package in
  universe

## Dependencies

retrodep (https://github.com/release-engineering/retrodep) was used here to
define versions of vedorized deps:

$ retrodep --importpath github.com/containerd/containerd pkg/containerd-1.3.1/
github.com/containerd/containerd:?
error: not all versions identified
github.com/containerd/containerd:? github.com/BurntSushi/toml:v0.3.1
github.com/containerd/containerd:? github.com/Microsoft/go-winio:v0.4.14
github.com/containerd/containerd:? github.com/Microsoft/hcsshim:v0.8.7-0.20190828181915-f2dbb0cdfd46
github.com/containerd/containerd:? github.com/beorn7/perks:v0.0.0-0.20160804124726-4c0e84591b9a
github.com/containerd/containerd:? github.com/containerd/aufs:v0.0.0-0.20190114135352-f894a800659b
github.com/containerd/containerd:? github.com/containerd/btrfs:v0.0.0-0.20191213182901-e85a17791e3f
github.com/containerd/containerd:? github.com/containerd/cgroups:v0.0.0-0.20190911105653-fc51bcbe4714
github.com/containerd/containerd:? github.com/containerd/console:v0.0.0-0.20191202150009-53a0f1deb970
github.com/containerd/containerd:? github.com/containerd/continuity:v0.0.0-0.20190815145530-f2a389ac0a02
github.com/containerd/containerd:? github.com/containerd/cri:v1.11.1-0.20191022175917-e5dd80533063
github.com/containerd/containerd:? github.com/containerd/fifo:v0.0.0-0.20190816140239-bda0ff6ed73c
github.com/containerd/containerd:? github.com/containerd/go-cni:v0.0.0-0.20190813160227-49fbd9b210f3
github.com/containerd/containerd:? github.com/containerd/go-runc:v0.0.0-0.20190911140354-e029b79d8cda
github.com/containerd/containerd:? github.com/containerd/ttrpc:v0.0.0-0.20191018155249-012175fdb774
github.com/containerd/containerd:? github.com/containerd/typeurl:v0.0.0-0.20181015115603-823176321381
github.com/containerd/containerd:? github.com/containerd/zfs:v0.0.0-0.20190829130200-2ceb2dbb8154
github.com/containerd/containerd:? github.com/containernetworking/cni:v0.7.1
github.com/containerd/containerd:? github.com/containernetworking/plugins:v0.7.0
github.com/containerd/containerd:? github.com/coreos/go-systemd:v14
github.com/containerd/containerd:? github.com/cpuguy83/go-md2man:v1.0.10
github.com/containerd/containerd:? github.com/davecgh/go-spew:v1.1.1
github.com/containerd/containerd:? github.com/docker/distribution:v2.7.1-0.20190304145348-6e10631d9c8b
github.com/containerd/containerd:? github.com/docker/docker:v1.4.2-0.20171028090302-7c35a2418265
github.com/containerd/containerd:? github.com/docker/go-events:v0.0.0-0.20170721120031-9461782956ad
github.com/containerd/containerd:? github.com/docker/go-metrics:v0.0.0-0.20180131095841-4ea375f7759c
github.com/containerd/containerd:? git...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

With above analysis done, in conjunction with the decisions in Paris and per the discussion in the MIR team meeting at [1] this is an ack.

Please go forward with vendored dependencies, that applies to:
1. the security team which has this on its queue for review
2. the server team for an eventual upload

http://ubottu.com/meetingology/logs/ubuntu-meeting/2020/ubuntu-meeting.2020-01-14-14.03.moin.txt

Revision history for this message
Eduardo Barretto (ebarretto) wrote :

I reviewed containerd 1.3.1-0ubuntu1 as checked into focal. This shouldn't be
considered a full audit but rather a quick gauge of maintainability.

containerd is a daemon that manages the complete container lifecycle of its
host system. Containerd controls runc.

- No CVE History:
- Build-Depends
 - debhelper (>= 9)
 - go-md2man
 - golang-go (>= 2:1.10~)
 - golang-race-detector-runtime
 - libbtrfs-dev | btrfs-progs (<< 4.16.1~)
 - libseccomp-dev
 - pkg-config
- pre/post rm and postinst scripts added automatically
- No init scripts
- systemd units
  - containerd.service - add overlay module to kernel and runs
    /usr/bin/containerd. Also sets some limits on number of processes,
    number of cores and files.
- No dbus services
- No setuid binaries
- binaries in PATH
  - /usr/bin/containerd
  - /usr/bin/containerd-shim
  - /usr/bin/containerd-shim-runc-v1
  - /usr/bin/containerd-shim-runc-v2
  - /usr/bin/containerd-stress
  - /usr/bin/ctr
- No sudo fragments
- No polkit files
- No udev rules
- unit tests / autopkgtests
  - different tests are available in the source code
   - imake test (run automatically during build): non-integration tests
   - make root-test: non-integration tests (requires root)
   - make integration: run all tests, including integration tests (requires root)
  - also autopkgtest available (basic smoke DEP8 test)
   - http://autopkgtest.ubuntu.com/packages/containerd
- No cron jobs
- Build logs:
  - No compilation errors or warnings.
  - E: Lintian run failed (policy violation)
    Lintian: fail

- Processes spawned
  - in pkg/process/ it implements its own way of Exec'ing processes
  - nsexec.c and cloned_binary.c: from runc, we commented about this function in
    runc MIR, nothing new.
  - vendor/github.com/containerd/go-runc/runc.go: Execute process inside the
    container.
- Memory management
  - Only in vendored code.
- File IO
  - Some File IO in archive/tar*.go, looks ok.
  - Other File IO are mostly done in vendored code.
- Logging
  - uses logrus for logging, much like runc.
- Environment variable usage
  - only in vendored code.
- Use of privileged functions
  - setuid, setgid and setresuid from runc code.
  - Lchown used in some places to change the uid and gid of the named file.
- No use of cryptography / random number sources etc
- Use of temp files mainly in test code.
- Use of networking
  - Only found something on:
    - runtime/v1/shim/client/client.go
    - runtime/v2/shim/publisher.go
    - cmd/containerd/command/publish.go
    - client.go
    - looks ok
- No use of WebKit
- No use of PolicyKit

- Coverity results
  - We end up finding a possible bug, we are working with upstream to get it investigated.

Security team ACK for promoting containerd to main.

Unassigning the Security Team.

Changed in containerd (Ubuntu):
assignee: Ubuntu Security Team (ubuntu-security) → nobody
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Now ready for promotion together with runc in bug 1817336.
We need to make a seed change to pull them in.

Changed in containerd (Ubuntu):
status: New → In Progress
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Seed change approved and done, since this only is going to the supported seed but not getting a direct package/task dependency please help to let us later double check it actually shows up in component mismatches.

Changed in containerd (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote :

Override component to main
containerd 1.3.3-0ubuntu1 in focal: universe/misc -> main
containerd 1.3.3-0ubuntu1 in focal amd64: universe/admin/optional/100% -> main
containerd 1.3.3-0ubuntu1 in focal arm64: universe/admin/optional/100% -> main
containerd 1.3.3-0ubuntu1 in focal armhf: universe/admin/optional/100% -> main
containerd 1.3.3-0ubuntu1 in focal ppc64el: universe/admin/optional/100% -> main
containerd 1.3.3-0ubuntu1 in focal s390x: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal amd64: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal arm64: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal armhf: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal i386: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal ppc64el: universe/admin/optional/100% -> main
golang-github-docker-containerd-dev 1.3.3-0ubuntu1 in focal s390x: universe/admin/optional/100% -> main
12 publications overridden.

Changed in containerd (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

IMHO worth mentioning here, as a consequence of bug 2022390 this source has been split.
The old source stays in sync with Debian providing the reverse dependencies the stability within the archive. And then there is the -app suffix which provides the regular updates (without impact to reverse dependencies) of the application stack.

Changed in containerd-app (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.