Bug 827199

Summary: [RHEL6] tail -f doesn't work on panasas file systems
Product: Red Hat Enterprise Linux 6 Reporter: Travis Gummels <tgummels>
Component: coreutilsAssignee: Ondrej Vasik <ovasik>
Status: CLOSED ERRATA QA Contact: Tomas Dolezal <todoleza>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.2CC: azelinka, bhubbard, djeffery, jokol, ohudlick, prc, todoleza, woodard
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
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.
Story Points: ---
Clone Of:
: 849673 (view as bug list) Environment:
Last Closed: 2013-11-21 20:57:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 782183, 832743, 840699, 849673, 924711    

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