Subject: Re: [Bug 700958] Re: tail -f gives misleading error message when inotify limit is reached

From: Jim Meyering <[email-masked]>
Date: Mon, 10 Jan 2011 15:50:10 +0100

A. Bram Neijt wrote:
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7813
>
> ** Bug watch added: Email to bug-coreutils@gnu #
>    mailto:[email-masked]
>
> ** Also affects: coreutils via
>    mailto:[email-masked]
>    Importance: Undecided
>        Status: New

Thanks for the report.
This was fixed for 8.6:

commit 61b77891c2d9af299063850a0c4d1d721340cfff
Author: Pádraig Brady <[email-masked]>
Date:   Tue Oct 12 01:39:58 2010 +0100

    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.

With coreutils-8.6 and newer, you'd see this:

    tail: inotify resources exhausted
    tail: inotify cannot be used, reverting to polling