mirror of
git://git.sv.gnu.org/findutils.git
synced 2026-01-29 12:58:55 +01:00
Similar to commit 889d001ab7 which handles vanished files better,
also fix the race for subdirectories (FTS_DNR).
Reproducer:
In average, the following produced 6-10 failures out of 1000 runs:
$ mkdir testdir
$ while :; do mkdir testdir/foo; rmdir testdir/foo; done &
$ for f in $(seq 1000); do \
find testdir -ignore_readdir_race -ls ; done >/dev/null
find: 'testdir/foo': No such file or directory
find: 'testdir/foo': No such file or directory
* find/ftsfind.c (consider_visiting): Return when FTS returned ENOENT
for FTS_DNR, i.e., unreadable directory, with -ignore_readdir_race.
* tests/find/readdir_race.sh: Add test.
* tests/local.mk (sh_tests): Reference it.
* NEWS (Bug Fixes): Amend and improve description of the previous fix.
See also https://savannah.gnu.org/bugs/?45930