[349] in Info-AFS_Redistribution

home help back first fref pref prev next nref lref last post

[zalewk@rpi.edu: Major problems with TeX-3.14]

daemon@ATHENA.MIT.EDU (Mike Shaddock)
Thu Oct 17 09:28:59 1991

Date: Thu, 17 Oct 91 07:28:36 -0400
From: Mike Shaddock <shaddock@unx.sas.com>
To: info-afs@transarc.com
In-Reply-To: <9110161826.AA07552@cobra.unx.sas.com> "snornb@unx.sas.com"

   To: info-afs@transarc.com
   Subject: Major problems with TeX-3.14
   Date: Tue, 15 Oct 91 17:13:59 -0400
   From: zalewk@rpi.edu

   At RPI, we have recently installed TeX, Version 3.14 into AFS
   space.  I had orginally built it in NFS space, after FTPing the
   sources from byron.  TeX, LaTeX, et al worked fine on all the
   architectures I built it for, which include SUN4's, SUN3's,
   RS/6000's, and AIX/370.

   However, upon moving everything into AFS space, strange things
   started happening.  Users reported getting "<directory>: Permission
   Denied" messages, where <directory> was some directory in AFS
   space, and NOT one of the directories that TeX uses (ie. fonts,
   inputs, formats, etc.).

   I myself ran into this problem yesterday, and it is reproducible on
   all architectures.  I ran /campus/text/tex/3.14/sun4c_41/bin/latex
   (which is in AFS space) from my home directory (/home/06/zalewk,
   also in AFS space). I got an error message "boburj: Permission
   denied", and then my prompt back.  No TeX banner message, or
   anything.  The trace output shows that something is causing TeX to
   traverse up from my current directory to the root partition.
   Because it found a depermitted directory along the way
   (/home/06/boburj), it stopped.  I have included the trace output
   below.

   Now, since TeX worked fine in NFS space, I would assume that there
   is some AFS call which is causing either TeX, or the loader, to
   traverse unnecessary directories.  This causes TeX to take a VERY
   long time to startup, if it can make it thru all the directories.
   If not, then it can't even be run. I think this is enough
   information to go on for now.  Since our /campus tree is in AFS, if
   you get the rpi.edu tree, you can look in /campus/text/tex/3.14
   yourself if you think it will help.  I will also try to provide any
   other information you might need to know.  This is a high priority
   problem, since TeX is now in production here, and quite a few users
   are depending on it.  Thanks for any help you can give.

It looks like the problem is that ld.so is doing a getcwd(), which
has to walk up the tree to / to figure out where it is.  While it is
doing this it encounters a directory that does not have lookup rights
enabled for anyone, which causes the lstat() to fail, something which
normally doesn't happen on a standard UNIX filesystem.  It looks like
Sun's version of getcwd() actually lstat()s each directory instead of
using the information from getdents().

If this analysis is correct, then my question is, should lstat() fail
in this case?  Operations which read the directory and/or examine the
ACL are clearly disallowed by not having lookup rights, yet lstat() is
doing neither of these (admittedly it will get the UNIX mode bits, but
that's not the same).

----
Mike Shaddock                             SAS Institute, Inc.
shaddock@unx.sas.com                      (919) 677-8000

home help back first fref pref prev next nref lref last post