-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
podman stop: Unable to clean up network: netavark: remove aardvark entries: check aardvark-dns netns: IO error: Permission denied #22103
Comments
I don't get why it would fail with EACCES even as root. And I really do not see why this would fail with anything other the ENOENT which is already ignored by the code. I can see the EACCES might happen as rootless in case where the aardvark pid was already reused by another process where we do not have privs on, but as root that can never be the case. |
ok I guess we need to ignore more errors, I am using something this to reproduce the logic easily: So at this point I wonder if it makes sense to not simply ignore all errors. This check is only a nice to have to make us aware of a inconsistent aardvark-dns vs rootless-netns state: #20396. |
ping
|
Right now there is a race condition where we return errors even in cases where they should be ignored. When we send SIGHUP to aardvark on teardown it might exit when all containers are removed. This means the check afterwards might read the netns path at a weird time while the process is being removed from the kernel structures. I asummed the only error can be ENOENT but I was wrong, in CI we also see EACCES and in my reproducer I also saw ESRCH. Given the check is a nice to have do ignore all errors there. Fixes containers/podman#22103 Signed-off-by: Paul Holzinger <[email protected]>
Right now there is a race condition where we return errors even in cases where they should be ignored. When we send SIGHUP to aardvark on teardown it might exit when all containers are removed. This means the check afterwards might read the netns path at a weird time while the process is being removed from the kernel structures. I assumed the only error can be ENOENT but I was wrong, in CI we also see EACCES and in my reproducer I also saw ESRCH. Given the check is a nice to have do ignore all errors there. Fixes containers/podman#22103 Signed-off-by: Paul Holzinger <[email protected]>
Looks like the same bug, except ENOENT instead of EACCESS:
In f40 root. File a new bug, or reopen this one? |
I saw that earlier, we can reopen this but on stop it is working differently and I very much fear that there is no way around these races until containers/aardvark-dns#338 is addressed |
This is one of those nasty ones that hides in logs, making it impossible for me to get full data.
Best I can tell, the first instance was Feb 9, in rawhide rootless. Seen also in f39 root.
Incomplete list below. There are maybe 3-4 others, it is way too hard to get a complete list.
The text was updated successfully, but these errors were encountered: