Coda File System

coda breaks sometimes on symlinks in long pathnames

From: Ivan Popov <pin_at_math.chalmers.se>
Date: Sat, 20 Oct 2001 19:02:26 +0200 (MET DST)
Hello!

As I am playing with software placement on Coda, I have lots of wrapper
scripts doing exec of each other and of binaries.

The pathnames of both binaries and wrappers are about 60-90 characters, 10
to 15 levels deep.

One strange thing is that if I put a symlink somewhere in the path:

/coda/a.../b.../c..../name/d..../e..../f..../wrapper

 change to

/coda/a.../b.../c..../name1/d..../e..../f..../wrapper
 and make a link
/coda/a.../b.../c..../name -> name1

then the first path "works as it should", but I get a very high (20 to
100%), indeterministic failure rate (exec: file not found, exec: bad
interpreter, no such file or directory).

It happens when one script starts several others (all of them have this
symlink in a common part of the path), partly in parallel - not more than
5 processes (xclients) though.
If I run the failed script manually, it does not show an error, or rather
it does but with much less probability (when a script is run alone).

Otherwise, the effect is very clear and persistent.

If I do not use symlinks in such long paths, the system looks quite
stable.

It does not depend on the particular client, at least I see no difference
between the following:

Debian Linux, 2.4.9, Coda kernel module 5.3.14, venus 5.3.15, Intel 486-66,32Mb
Debian Linux, 2.4.4, Coda kernel module 5.3.14, venus 5.3.15, Intel P166,64Mb

Server - 5.3.15 on P100.

It doesn't matter if the files are present in the cache.

Any ideas? (I suppose it is a weird combination of kernel actions
while starting interpreters and venus<-->kernel race conditions...)

Regards,
--
Ivan Popov <pin_at_math.chalmers.se>
Received on 2001-10-20 13:03:09