Skip to content

Since 2.3.0, transfer service refuses to initialize without erofs-utils #13346

@glennschmidt

Description

@glennschmidt

Description

My docker-in-docker setup no longer starts after upgrade to containerd 2.3.0. I believe this is because it requires the transfer plugin, which no longer works unless (sufficiently recent) erofs utilities are installed on the host.

level=info msg="skip loading plugin" error="failed to check mkfs.erofs availability:
  failed to run mkfs.erofs --help: exec: "mkfs.erofs": executable file not found in $PATH: skip plugin"
  id=io.containerd.differ.v1.erofs

level=info msg="skip loading plugin" error="failed to get instance for diff plugin \"erofs\":
  ... skip plugin"
  id=io.containerd.transfer.v1.local

Is this an expected dependency? It's not expressed in the apt repo.
If erofs support is optional, its absence should not prevent the transfer plugin from functioning?

Downgrading to containerd 2.2.3 fixes the issue for me.

Steps to reproduce the issue

Install containerd on a system without the mkfs.erofs binary.

Describe the results you received and expected

Expected: Transfer plugin loads
Actual: Transfer plugin (and downstream dependencies) skip loading

What version of containerd are you using?

containerd github.com/containerd/containerd/v2 2.3.0-1 2976f38

Any other relevant information

Linux, Debian Bookworm
Installed via https://github.com/devcontainers/features/blob/main/src/docker-in-docker/install.sh

Show configuration if it is related to CRI plugin.

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions