freebsd 2.2.5 and arla-0.13

Assar Westerlund assar at sics.se
Wed Oct 7 05:45:18 CEST 1998


Eric Hoffman <hoffman at cs.washington.edu> writes:
> #0  0x1755 in find_by_name (page0=0x0, name=0x587e8 "cs", fid=0x2c7dc4, 
>     dir=0x2c78dc) at adir.c:110
> #1  0x1e8b in adir_lookup (dir={Cell = 0, fid = {Volume = 536871104, 
>         Vnode = 1, Unique = 1}}, name=0x587e8 "cs", file=0x2c7dc4, ce=0xd3c60)
>     at adir.c:331
> #2  0xd028 in cm_lookup (dir_fid={Cell = 0, fid = {Volume = 536871104, 
>         Vnode = 1, Unique = 1}}, name=0x587e8 "cs", res=0x2c7dc4, ce=0x2c7d50)
>     at inter.c:513
> #3  0xf39d in xfs_message_getnode (fd=8, h=0x587c4, size=292) at messages.c:586
> #4  0xeab1 in xfs_message_receive (fd=8, h=0x587c4, size=292) at messages.c:339
> #5  0xe1c1 in process_message (fd=8) at kernel.c:75

I think the logic in adir_lookup is quite broken and it gets confused
because the first iteration half-worked.  Try adding `1 ||' at the
begin of the if-condition so that branch is always taken.

> running arlad from zero, and listing the root directory of my cell,
> gives a path through adir_lookup() which fails on fcache_open_file()
> and returns.
> 
> adir_lookup() then gets called again, but the large if clause fails,
> and find_by_name() is called on the value of the_fbuf.buf filled in at
> stack frame initialization time

That's weird.  Doesn't the_fbuf get initialized to {NULL, -1, 0, 0} ?

> I'm enclosing the xfs log should you care to look at it...having the
> fileid be zero on the fhlookup seems somewhat off...anyways, again,
> suggestions are welcome, but I'm perfectly happy to try to muddle
> through myself

The fileid being zero is bad and is probably a result of fcache_fhget
failing.  Did you get any debug output from xfs while arlad was
creating the cache files?

/assar





More information about the Arla-drinkers mailing list