Skip to content

Commit

Permalink
Merge pull request #2306 from Luap99/rootless-netns-file
Browse files Browse the repository at this point in the history
rootlessnetns: fix setup error when file already exists
  • Loading branch information
openshift-merge-bot[bot] authored Jan 31, 2025
2 parents 00e3cba + 618722c commit 208ccf6
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions libnetwork/internal/rootlessnetns/netns_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 208ccf6

Please sign in to comment.