[OpenAFS-devel] Interesting AFS Issue

Derek Atkins warlord@MIT.EDU
12 Nov 2002 09:20:40 -0500


I was "offline" last weekend, but I was trying to get work done on my
laptop.  I've got a set of local compilers and other fun joys
installed.  However, even though 'gcc' and everything else I need is
installed locally, it wasn't working when I tried to use it offline.
It was, in fact, complaining about 'as' not being found.  Similarly, a
"make" was complaining about 'rm' not being found.  For example:

--> strace -o /tmp/gcc.out gcc3 -o /tmp/test.o /tmp/test.c
gcc3: installation problem, cannot exec `as': Connection timed out

I ran 'which as' and 'which rm' and both returned "local" results
(/usr/bin/as and /bin/rm).  Both were in my path..  So, why was gcc
and make failing?

I ran an strace...  Here are the interesting bits:

9677  fork()                            = 9679
9677  wait4(-1,  <unfinished ...>
9679  execve("/opt/intltool-0.22/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/opt/g-wrap-1.3.2/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/opt/j2sdk1.3.1/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/opt/gnucash-cvs/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/opt/gnome-utils-1.4.1.2/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/opt/glade-0.6.4/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/usr/athena/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ENOENT (No such file or directory)
9679  execve("/afs/sipb.mit.edu/user/warlord/bin/as", ["as", "-Qy", "-o", "/tmp/ccshEscR.o", "/tmp/cc8lcfBP.s"], [/* 54 vars */]) = -1 ETIMEDOUT (Connection timed out)
9679  write(2, "gcc3: ", 6)             = 6
9679  write(2, "installation problem, cannot exe"..., 38) = 38
9679  write(2, ": Connection timed out\n", 23) = 23
9679  _exit(-1)                         = ?

As you can see, the "Connection Timed Out" return code on the search
path is causing both gcc _AND_ make to fail!  Who knows what other
applications are going to die in this manner.  I'm not sure if there
is a good way to fix this in AFS unless we change the error code --
changing all the affected applications may be a LOT of work.

I'm running: -stat 10000 -daemons 4 -volumes 200 -afsdb -dynroot -fakestat

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available