Merge pull request #2306 from Luap99/rootless-netns-file

rootlessnetns: fix setup error when file already exists
This commit is contained in:
openshift-merge-bot[bot] 2025-01-31 16:21:32 +00:00 committed by GitHub
commit 795aba6710
1 changed files with 9 additions and 0 deletions

View File

@ -135,6 +135,15 @@ func (n *Netns) getOrCreateNetns() (ns.NetNS, bool, error) {
}
// In case of errors continue and setup the network cmd again.
} else {
// Special case, the file might exist already but is not a valid netns.
// One reason could be that a previous setup was killed between creating
// the file and mounting it. Or if the file is not on tmpfs (deleted on boot)
// you might run into it as well: https://github.com/containers/podman/issues/25144
// We have to do this because NewNSAtPath fails with EEXIST otherwise
if errors.As(err, &ns.NSPathNotNSErr{}) {
// We don't care if this fails, NewNSAtPath() should return the real error.
_ = os.Remove(nsPath)
}
logrus.Debugf("Creating rootless network namespace at %q", nsPath)
// We have to create the netns dir again here because it is possible
// that cleanup() removed it.