[OpenAFS-devel] mount-point inode-number inconsistencies with openafs-1.4.1

Alexander Bergolth leo@strike.wu-wien.ac.at
Tue, 30 May 2006 18:41:04 +0200


Hi!

On my openafs 1.4.1 client one afs-volume that is (erroneously) mounted
on several places causes trouble because doing a stat on it's mount
points yields different inode numbers _sometimes_.

The concrete issue looks like that:

Volume user.skamrada.log is mounted on
/afs/wu-wien.ac.at/home/edvz/skamrada and (by mistake) on
/afs/wu-wien.ac.at/home/edvz/skamrada/logs/backup.

When determining the inode-numbers of the mount-points and using
relative path names, different inode numbers are shown when called for
the first time. On subsequent calls the same inode numbers are shown (!)
until I do a "pwd", then the behavior is reset and the next call prints
different inode numbers again:

-------------------- snip! --------------------
$ ls -id1 . backup backup/backup
278020792 .
193265714 backup
193265714 backup/backup
$ ls -id1 . backup backup/backup
193265714 .
193265714 backup
193265714 backup/backup
$ pwd
/afs/wu-wien.ac.at/home/edvz/skamrada/logs
$ ls -id1 . backup backup/backup
278020792 .
193265714 backup
193265714 backup/backup
-------------------- snip! --------------------

When using absolute path-names, different inode numbers are shown each time:
-------------------- snip! --------------------
$ ls -id1 /afs/wu-wien.ac.at/home/edvz/skamrada/logs \
    /afs/wu-wien.ac.at/home/edvz/skamrada/logs/backup \
    /afs/wu-wien.ac.at/home/edvz/skamrada/logs/backup/backup
278020792 /afs/wu-wien.ac.at/home/edvz/skamrada/logs
193265714 /afs/wu-wien.ac.at/home/edvz/skamrada/logs/backup
193265714 /afs/wu-wien.ac.at/home/edvz/skamrada/logs/backup/backup
-------------------- snip! --------------------

This is the behavior on an OpenAFS-1.4.1 client. (The non deterministic
results in the first case cause "find . -noleaf" to fail on subsequent
files after it has detected the loop in logs/backup/backup.)

A client that runs OpenAFS 1.3.82 always shows a different inode number
for the "logs" directory:
-------------------- snip! --------------------
$ ls -id1 . backup backup/backup
278020792 .
193265714 backup
193265714 backup/backup
-------------------- snip! --------------------

An old Transarc AIX-Client returns the same inode-numbers for all
mount-points:
-------------------- snip! --------------------
$ ls -di1 . backup backup/backup
193265714 .
193265714 backup
193265714 backup/backup
-------------------- snip! --------------------

In my opinion the Transarc Client behaves correctly.

When testing with other volumes, I can reproduce the first example
(different inode numbers only on the first call) only sometimes, the
other ones stable. See /afs/wu-wien.ac.at/public/misc/bergolth which is
readable by system.anyuser for example:
-------------------- snip! --------------------
$ ls -di1 . loop loop/loop
892862466 .
369295376 loop
369295376 loop/loop
$ ls -di1 . loop loop/loop
369295376 .
369295376 loop
369295376 loop/loop
-------------------- snip! --------------------

Which one is the intended behavior?
Please let me know if you need additional infos.

Cheers,
--leo

P.S.: I also noticed several hangs with 1.4.1. where one filesystem
operation blocks forever and seems to lock out any other openafs
file-operations until a reboot. I can send you some kernel-stack-traces
of hanging processes on request.

P.P.S.: Additional info:

$ fs exa . backup/. | grep -e '^File ' -e '^Volume '
File . (537103237.1.1) contained in volume 537103237
Volume status for vid = 537103237 named user.skamrada.log
File backup/. (537103237.1.1) contained in volume 537103237
Volume status for vid = 537103237 named user.skamrada.log

$ /usr/sbin/vos exa user.skamrada.log
user.skamrada.log                 537103237 RW     165332 K  On-line
    d-hoernchen.wu-wien.ac.at /vicepb
    RWrite  537103237 ROnly          0 Backup  537103239
    MaxQuota     204800 K
    Creation    Tue May 22 15:51:14 2001
    Copy        Fri Nov 11 01:01:50 2005
    Backup      Never
    Last Update Sun May 28 02:41:02 2006
    372 accesses in the past day (i.e., vnode references)

    RWrite: 537103237     Backup: 537103239
    number of sites -> 1
       server d-hoernchen.wu-wien.ac.at partition /vicepb RW Site

# on the OpenAFS-1.4.1 Client, doesn't change
$ cmdebug -long localhost  | fgrep -A5 537103237.1.1
** Cache entry @ 0xf263ca80 for 157.537103237.1.1 [wu-wien.ac.at]
            2048 bytes  DV          125  refcnt     2
    callback f4212d40   expires 1149020876
    0 opens     0 writers
    volume root
    states (0x1), stat'd

-- 
-----------------------------------------------------------------------
Alexander.Bergolth@wu-wien.ac.at                Fax: +43-1-31336-906050
Zentrum fuer Informatikdienste - Wirtschaftsuniversitaet Wien - Austria