Since coreutils 7.5 tail uses inotify. However it is not capable to follow
the sequence of file operations that happen when /var/log/syslog is rotated
by its daily cron job. This means that 'tail -F /var/log/syslog' will stop
producing output as soon as the file is rotated.

Let me give a demonstration. Open two terminal windows and enter the
following commands:

Terminal 1                              Terminal 2
----------                              ----------

echo "line 1" > somefile
tail -F somefile

                                        echo "line 2" >> somefile
                                        savelog -m 640 -c 7 somefile
                                        echo "line 3" >> somefile
                                        echo "line 4" >> somefile

This results in the following output from the tail command:

line 1
line 2
tail: `somefile' has been replaced;  following end of new file

Notice that tail fails to follow the newly created somefile and never shows
lines 3 and 4. That this is caused by the new inotify code can be
demonstrated by using the latest git checkout of coreutils. This version
still fails the above scenario, but by supplying the undocumented
'---disable-inotify' flag the inotify code is disabled and the old polling
behaviour is used. This old behaviour can cope with the logrotate sequence
and will correctly show the contents of the new file.

Could you use this information to file a bug report for GNU coreutils to
have the inotify implementation of tail fixed? In the meantime should the
Debian version of tail maybe be build without inotify support because it no
longer functions the way that users have come to expect?


Arjan



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to