fam TODO list, $Date: 2000/05/03 12:15:58 $

See http://oss.sgi.com/projects/fam/todo.html for the current list.


In no particular order...


KNOWN BUGS

- There is a problem when running without imon support where some combination
  of a file being deleted and added and deleted again (or something like that)
  will cause it to stop being monitored.  Wesley Smith has a fix for this, but
  it's not included in 2.6.3.  (Hopefully 2.6.4 is only a few days away, ha
  ha.)

- See also the Documentation/imon.txt file for imon bugs, which affect fam.

MISSING FEATURES

- xtab verification isn't implemented on Linux.  On a system using knfsd,
  fam ought to monitor the xtab.  The knfsd xtab has more information than
  the IRIX /etc/xtab, so that chunk of code ought to be simpler than the
  IRIX version.

- We should add fam to /etc/inetd.conf on "make install" and when installing
  an rpm.

- Various additional configuration options (and more of the command-line
  arguments) should be read from fam.conf.  For example, in
  Listener::read_client_negotiate(), we wait 60 seconds for a client to connect
  on the UNIX domain socket which we created for them before cleaning it up;
  that timeout should be read from fam.conf.

- BTree should have a better way to iterate through its elements, and that
  way should be used in fam/ServerHost.c++, in ServerHost::poll().

THE CONFIGURE SCRIPT

- configure.in ignores the test for sys/statvfs.h on Linux because the f_fsid
  type is a struct, and no operator<(const __fsid_t &, const __fsid_t) has been
  written.  (I don't remember whether that was the necessary operator or not;
  remove the chunk in configure.in which stomps HAVE_STATVFS, and uncomment the
  part which checks for CONFIG_FSID_T, and see what breaks when you compile.)

- configure.in should be less crude.  Unfortunately, I suffer from a rare
  medical condition which causes gouts of blood to spray from my eye sockets
  whenever I'm exposed to m4 code.  (Perhaps Miss Manners prefers the term
  "painful retinal bleeding?")
  
  FOR EXAMPLE, LessTif is huge compared to fam, and their configure.in is
  something I would show my mom.  They don't have a single AC_TRY_COMPILE! 
  That suggests to me that fam's configure.in is horribly sub-optimal.  If
  you're a configure.inmeister, please, show me the right way to get it to do
  what I want!

SLIGHTLY BROKEN STUFF

- The way we determine whether a mntent is NFS is kind of fragile, and
  involves string compares with MNT_TYPE_NFS, MNT_TYPE_NFS2, etc.  That could
  be better, and the list of MNT_TYPE strings could be read from fam.conf,
  etc.  The determination is made in fam/FileSystemTable.c++, in
  create_fs_by_name().

- There are some filesystems which may be too slow to monitor.  These should
  probably be read from fam.conf instead of at configure time.  (This is in
  fam/Interest.c++, in the Interest constructor.)

- I think some of the paths in the man pages are not right.  (They say
  /usr/etc/fam instead of /usr/local/bin/fam.)  The path to the config file
  is already being substituted at configure time in one of the man pages, so
  it should be trivial to follow that as an example.

- The Log::fatal() at the bottom of fam/IMon.c++ should be fixed and removed.
  fam built without imon support should either handle opening /dev/imon, or
  not try in the first place!

