From 61b77891c2d9af299063850a0c4d1d721340cfff Mon Sep 17 00:00:00 2001 From: Pádraig Brady
Date: Tue, 12 Oct 2010 01:39:58 +0100
Subject: tail: fix checking of currently unavailable directories
* src/tail.c (tail_forever_inotify): Handle the case where
tail --follow=name with inotify, is not able to add a watch on
a specified directory. This may happen due to inotify resource
limits or if the directory is currently missing or inaccessible.
In all these cases, revert to polling which will try to reopen
the file later. Note inotify returns ENOSPC when it runs out
of resources, and instead we report a particular error message,
lest users think one of their file systems is full.
(main): Document another caveat with using inotify, where we
currently don't recheck directories recreated after the
initial watch is setup.
* tests/tail-2/F-vs-rename: Fix the endless loop triggered by
the above issue.
* tests/tail-2/inotify-hash-abuse: Likewise.
* tests/tail-2/wait: Don't fail in the resource exhaustion case.
* tests/tail-2/F-vs-missing: A new test for this failure mode
which was until now just triggered on older buggy linux kernels
which returned ENOSPC constantly from inotify_add_watch().
* NEWS: Mention the fix.
---
tests/tail-2/F-vs-rename | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
(limited to 'tests/tail-2/F-vs-rename')
diff --git a/tests/tail-2/F-vs-rename b/tests/tail-2/F-vs-rename
index 74db80137..98b36e745 100755
--- a/tests/tail-2/F-vs-rename
+++ b/tests/tail-2/F-vs-rename
@@ -18,39 +18,36 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see