From 27d6a409dc0375b16efa0beef0120d89d5094ccd Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Wed, 9 Apr 2025 13:44:41 -0700 Subject: [PATCH] [bp-2.18] find: skip ENOENT while enumerating files (#84886) * skip 'no such file or directory' error code while files and directories and report them. Fixes: #84873 Signed-off-by: Abhijeet Kasurde (cherry picked from commit 52808501300026353b98c11aef4bcbe1a7c71b0f) --- changelogs/fragments/find_enoent.yml | 5 +++++ lib/ansible/modules/find.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/find_enoent.yml diff --git a/changelogs/fragments/find_enoent.yml b/changelogs/fragments/find_enoent.yml new file mode 100644 index 00000000000..7fa780cd35b --- /dev/null +++ b/changelogs/fragments/find_enoent.yml @@ -0,0 +1,5 @@ +--- +bugfixes: + - find - skip ENOENT error code while recursively enumerating files. + find module will now be tolerant to race conditions that remove files or directories + from the target it is currently inspecting. (https://github.com/ansible/ansible/issues/84873). diff --git a/lib/ansible/modules/find.py b/lib/ansible/modules/find.py index a516b354bc9..c2a5138c14b 100644 --- a/lib/ansible/modules/find.py +++ b/lib/ansible/modules/find.py @@ -513,7 +513,7 @@ def main(): skipped = {} def handle_walk_errors(e): - if e.errno in (errno.EPERM, errno.EACCES): + if e.errno in (errno.EPERM, errno.EACCES, errno.ENOENT): skipped[e.filename] = to_text(e) return raise e