Repository navigation
support or disable direct unpack when running in userns #3762
Description
Activity
PR to disable direct unpack: #3763
- added a commit that references this issue
on Oct 25, 2019 In case anyone else reads this, I faced same issue with containerd 1.3.3 running in kata pod, turned out it was to do with
/var/libbeing on a 9p filesystem, which doesn't supportmknod. For my use-case It was sufficient for to setroot = /run/containerd/rootandstate = /run/containerd/statein the containerd config file, as/runis atmpfsand I also got some performance improvements on image pulls that way (I do have plenty of memory to spare, at least at the moment).Reacted by Alexander Jung, linyouhui, MrFan and David Dymko- added a commit that references this issue
on Sep 11, 2020 In case anyone else reads this, I faced same issue with containerd 1.3.3 running in kata pod, turned out it was to do with
/var/libbeing on a 9p filesystem, which doesn't supportmknod. For my use-case It was sufficient for to setroot = /run/containerd/rootandstate = /run/containerd/statein the containerd config file, as/runis atmpfsand I also got some performance improvements on image pulls that way (I do have plenty of memory to spare, at least at the moment).I don't think you should use root on a tmpfs -- your state won't get saved on machine restart and will cause unexpected behavior when trying to start containerd service
it fails in user namespace with
containerd github.com/containerd/containerd v1.6.6 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1error
FATA[0006] pulling image: rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/jupyterhub/configurable-http-proxy:4.5.3": failed to extract layer sha256:1be7bfe3945a9f69b537b3d4112245b7290837feadb68fca2214cc5f33a6386d: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount2456203030: failed to convert whiteout file "usr/local/lib/node_modules/.wh.npm": unlinkat /var/lib/containerd/tmpmounts/containerd-mount2456203030/usr/local/lib/node_modules/npm/node_modules/yallist: input/output error: unknown@AkihiroSuda how can I get this to work within the user namespace?
@mathis-m Could you open a new issue with details (minimum repro steps, host kernel version, filesystem, etc.)
- added a commit that references this issue
on May 21, 2025
Description
Direct unpack added in #3528 (v1.3.0) doesn't work well when running in user namespace:
The error happens because whiteout cannot be created with
mknodin user namespace.Moby implementation supports creating whiteout in a hacky alternative way:
https://github.com/moby/moby/blob/a8b04b17fd37ed797e34bea6534d307929c6337b/pkg/archive/archive_linux.go#L122-L175
Steps to reproduce the issue:
Describe the results you received:
failed to convert whiteout file "etc/ca-certificates/.wh..wh..opq": operation not permitted: unknownDescribe the results you expected:
It should either support or disable direct unpack
Output of
containerd --version:1.3.0