Bug 827199 - [RHEL6] tail -f doesn't work on panasas file systems
Summary: [RHEL6] tail -f doesn't work on panasas file systems
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: coreutils
Version: 6.2
Hardware: All
OS: Linux
urgent
high
Target Milestone: rc
: ---
Assignee: Ondrej Vasik
QA Contact: Tomas Dolezal
URL:
Whiteboard:
Keywords: ZStream
Depends On:
Blocks: 782183 832743 840699 849673 924711
TreeView+ depends on / blocked
 
Reported: 2012-05-31 21:38 UTC by Travis Gummels
Modified: 2018-12-01 18:34 UTC (History)
8 users (show)

(edit)
The "tail -f" command uses inotify for tracking changes in files. For remote file systems [-/,] inotify is not available. In the case of unknown file systems, for example panasas, "tail -f" failed instead of falling back to polling. Now, the list of known file systems is updated and "tail -f" is modified to fall back into polling for unknown file systems. As result, "tail -f" now works correctly, even on unknown file systems, with only a warning about the unknown file system and a fall back to polling.Cause:
tail -f uses inotify for tracking changes in files. For remote filesystems inotify is not available. 

Consequence: 
In the case of unknown filesystems like panassas, tail -f simply failed, instead of fallback to polling.

Fix: 
List of known filesystems was updated and tail was modified to fallback into polling, for unknown filesystems.

Result: 
As result, tail -f will work correctly even on unknown filesystems, just with warning about unknown filesystem and fallback to polling.
Clone Of:
: 849673 (view as bug list)
(edit)
Last Closed: 2013-11-21 20:57:38 UTC


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:1652 normal SHIPPED_LIVE Low: coreutils security, bug fix, and enhancement update 2013-11-20 21:53:21 UTC
Red Hat Knowledge Base (Solution) 133503 None None None 2012-11-02 08:55:42 UTC

Description Travis Gummels 2012-05-31 21:38:10 UTC
Description of problem:

tail -f doesn't work on panassas file systems

It appears like the current rhel6 coreutils blacklists fs's for which inotify doesn't work. These are mostly network file systems. Unfortunately, panassas's file system isn't listed and so tail -f doesn't work.

from tail.c

  886  # if HAVE_FSTATFS && HAVE_STRUCT_STATFS_F_TYPE && defined __linux__
   887    struct statfs buf;
   888    int err = fstatfs (fd, &buf);
   889    if (err != 0)
   890      {
   891        /* On at least linux-2.6.38, fstatfs fails with ENOSYS when FD
   892           is open on a pipe.  Treat that like a remote file.  */
   893        if (errno != ENOSYS)
   894          error (0, errno, _("cannot determine location of %s. "
   895                             "reverting to polling"), quote (name));
   896      }
   897    else
   898      {
   899        switch (buf.f_type)
   900          {
   901          case S_MAGIC_AFS:
   902          case S_MAGIC_CIFS:
   903          case S_MAGIC_CODA:
   904          case S_MAGIC_FUSEBLK:

$ ./f_type /panfs/scratch                                              
  f_type = 0xaad7aaea 

Which seems to be PAN_KERNEL_FS_CLIENT_SUPER_MAGIC

Possible resolution likely seems to be to add PAN_KERNEL_FS_CLIENT_SUPER_MAGIC or 0xaad7aaea to tail's logic.

Version-Release number of selected component (if applicable):
coreutils as shipped with RHEL 6.2

How reproducible:
100%

Steps to Reproduce:
1. Run tail -f against a file on a panassas file system.
2.
3.
  
Actual results:
tail -f does not work

Expected results:
tail -f works

Additional info:

Comment 2 Jim Meyering 2012-06-01 07:35:55 UTC
Thanks for the heads up.
Is there a definitive source for that PanFS magic number?
I pull new magic numbers for coreutils from linux kernel header files
semi-automatically, and see that one is not yet there.

I've just posted an upstream coreutils patch for that:

    http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2749

Comment 18 errata-xmlrpc 2013-11-21 20:57:38 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-1652.html


Note You need to log in before you can comment on or make changes to this bug.