[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