Skip to content

rootless: pods: unlinkat, EBUSY #7139

@edsantiago

Description

@edsantiago

Are pods supposed to work with podman-remote? There's a race condition somewhere in rootless pods. (There's one in rootful, too, but I'm having a really hard time getting a reproducer).

In window 1:

$ ./bin/podman system service --timeout=0

In window 2:

$ cat >foo.sh <<EOF
#!/bin/bash

./bin/podman-remote pod create --infra=true --name=foo

cid=$(./bin/podman-remote run -d   --pod foo alpine sleep 1)
./bin/podman-remote run --rm --pod foo alpine true

sleep 1
/bin/time ./bin/podman-remote rm $cid

/bin/time ./bin/podman-remote pod rm foo
EOF

$ bash -x foo.sh
+ ./bin/podman-remote pod create --infra=true --name=foo
4e182754caf7e065917a258a9a5ebc4c29498df1f2381b165c10616c458ebedf
++ ./bin/podman-remote run -d --pod foo alpine sleep 1
+ cid=82822d1b6544692162118f553b857a10490a6a18ebd2ae6ecb1c088eec661c37
+ ./bin/podman-remote run --rm --pod foo alpine true
+ sleep 1
+ /bin/time ./bin/podman-remote rm 82822d1b6544692162118f553b857a10490a6a18ebd2ae6ecb1c088eec661c37
Error: error removing container 82822d1b6544692162118f553b857a10490a6a18ebd2ae6ecb1c088eec661c37 root filesystem: 1 error occurred:
        * unlinkat /home/esm/.local/share/containers/storage/overlay/3ba0c1f06abbda6296b7fd183b776c212bb5cf352100ea1ff6e93bd543204037/merged: device or resource busy


Command exited with non-zero status 125
0.03user 0.03system 0:10.12elapsed 0%CPU (0avgtext+0avgdata 29276maxresident)k   <--- note: 10s
0inputs+0outputs (0major+2127minor)pagefaults 0swaps
+ /bin/time ./bin/podman-remote pod rm foo
Error: error removing container 59f9f424ad65a88f4b55af3873a00259f74eeb8e4ab56e6bf1e01f041e822d84 root filesystem: 1 error occurred:
        * unlinkat /home/esm/.local/share/containers/storage/overlay/02b1322ceed80312346340312c1068d832727ac30a3683c6c6b2cb22073c40fa/merged: device or resource busy


Command exited with non-zero status 125
0.04user 0.03system 0:10.29elapsed 0%CPU (0avgtext+0avgdata 29292maxresident)k     <---- note: 10s
0inputs+0outputs (0major+2240minor)pagefaults 0swaps

This leaves droppings behind, the two directories listed above. I can remove them manually:

$ /bin/rm -rf ~/.local/share/containers/storage/overlay/3ba*
$ /bin/rm -rf ~/.local/share/containers/storage/overlay/02b*
(no errors)

FWIW I can't reproduce by running the commands manually in my shell; only by running the script above.

master @ 7f38774, rootless only. f32 with crun

Metadata

Metadata

Assignees

Labels

flakesFlakes from Continuous Integrationkind/test-flakeCategorizes issue or PR as related to test flakes.locked - please file new issue/PRAssist humans wanting to comment on an old issue or PR with locked comments.rootless

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions