diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2021-12-09 16:48:44 +0100 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2021-12-09 17:06:21 +0100 |
commit | 6d19ecadc869753aaf7875914a3f6e855b97c31b (patch) | |
tree | 6849a5fbfb58450822aaa2ec42d1c94af0508b4b | |
parent | 4a52a457d1e33a4817e4ce1dca390ba942eaec44 (diff) | |
download | podman-6d19ecadc869753aaf7875914a3f6e855b97c31b.tar.gz podman-6d19ecadc869753aaf7875914a3f6e855b97c31b.tar.bz2 podman-6d19ecadc869753aaf7875914a3f6e855b97c31b.zip |
inotify: make sure to remove files
Issue #11825 suggests that *rootless* Podman can run into situations
where too many inotify fds are open. Indeed, rootless Podman has a
slightly higher usage of inotify watchers than the root counterpart
when using slirp4netns
Make sure to not only close all watchers but to also remove the files
from being watched. Otherwise, the fds only get closed
when the files are removed.
[NO NEW TESTS NEEDED] since we don't have a way to test it.
Fixes: #11825
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
-rw-r--r-- | libpod/util.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libpod/util.go b/libpod/util.go index 5154a261e..e89c6faaa 100644 --- a/libpod/util.go +++ b/libpod/util.go @@ -56,6 +56,7 @@ func WaitForFile(path string, chWait chan error, timeout time.Duration) (bool, e inotifyEvents = watcher.Events } defer watcher.Close() + defer watcher.Remove(filepath.Dir(path)) } var timeoutChan <-chan time.Time |