You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've run into a, very rare, issue with an embedded system we are developing. We have various containers running on the aarch64 Nvidia Jetson platform and using podman for our containerized services. After a reboot, none of our containers were running (orchestrated with systemd) and we found that running podman ps, or any other podman command, returned Error: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists. I discovered that the overlay/l "directory" had actually been turned into a symlink instead of being a directory like I've come to expect it to be. It was a symlink to one of the diff layers, exactly like the symlinks that are normally in the overlay/l directory.
Has anyone seen this before? I ran a full fsck on the drive and tested it with smartctl, both of which came back clean. I don't suspect a disk failure. I was able to recover from this situation by simply removing the overlay/l symlink and re-run any podman command, which recreated the directory as expected and it began populating with symlinks like normal.
Note: I realize 3.4.4 is quite an old version of podman at this point. We plan to upgrade but are blocked behind some other planned upgrades (e.g. kernel 6.0+, newer version of Ubuntu). I'm mainly wanting to see if anyone has any insights into why this happened or if others have experienced something similar. For the short term, I have implemented a mechanism to detect and correct this situation.
Steps to reproduce the issue
This is a forced reproducer, I have only seen it occur organically one time in the field (after a simply sudo reboot)
Run any podman command, e.g. sudo podman ps and observe the error: Error: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists
Describe the results you received
Podman appears to have corrupted the overlay/l directory and converted it to a symlink, resulting in the error Error: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists being thrown for any podman command.
Describe the results you expected
I would expect that podman would not corrupt the overlay/l directory to be a symlink and/or file instead of a directory. Barring that, I would expect it could detect such a situation and correct for it.
Issue Description
I've run into a, very rare, issue with an embedded system we are developing. We have various containers running on the aarch64 Nvidia Jetson platform and using podman for our containerized services. After a reboot, none of our containers were running (orchestrated with systemd) and we found that running
podman ps
, or any other podman command, returnedError: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists
. I discovered that theoverlay/l
"directory" had actually been turned into a symlink instead of being a directory like I've come to expect it to be. It was a symlink to one of the diff layers, exactly like the symlinks that are normally in theoverlay/l
directory.Has anyone seen this before? I ran a full
fsck
on the drive and tested it withsmartctl
, both of which came back clean. I don't suspect a disk failure. I was able to recover from this situation by simply removing theoverlay/l
symlink and re-run any podman command, which recreated the directory as expected and it began populating with symlinks like normal.Note: I realize 3.4.4 is quite an old version of podman at this point. We plan to upgrade but are blocked behind some other planned upgrades (e.g. kernel 6.0+, newer version of Ubuntu). I'm mainly wanting to see if anyone has any insights into why this happened or if others have experienced something similar. For the short term, I have implemented a mechanism to detect and correct this situation.
Steps to reproduce the issue
This is a forced reproducer, I have only seen it occur organically one time in the field (after a simply
sudo reboot
)Steps to reproduce the issue
sudo rm -rf /mnt/persistent/var/lib/containers/overlay/l
sudo touch /mnt/persistent/var/lib/containers/overlay/l
sudo podman ps
and observe the error:Error: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists
Describe the results you received
Podman appears to have corrupted the
overlay/l
directory and converted it to a symlink, resulting in the errorError: mkdir /mnt/persistent/var/lib/containers/overlay/l: file exists
being thrown for any podman command.Describe the results you expected
I would expect that podman would not corrupt the
overlay/l
directory to be a symlink and/or file instead of a directory. Barring that, I would expect it could detect such a situation and correct for it.podman info output
Podman in a container
No
Privileged Or Rootless
Privileged
Upstream Latest Release
No
Additional environment details
I am using a custom graphroot on a separate partition in
/etc/containers/storage.conf
graphroot = "/mnt/persistent/var/lib/containers"
Additional information
I have only seen this happen once in the field, after a simple
sudo reboot
. I am able to induce the failure with the reproducer provided.The text was updated successfully, but these errors were encountered: