[...]
> On system X, doing a "/bin/ls /foo/bar/duh" (or "cd /foo/bar/duh;
> /bin/ls") lists file f but any command that tries to access the file
> (e.g. via a stat, open, etc. system call) fails saying file not found.

[...]
> While I'm not looking for a script from anyone, I would appreciate any
> advice on how to figure out why the kernel (snfs/cvfs driver?) is not
> able to access the file from system X. Remember that I can use system
> Y as a control system.

Well, without any filesystem knowledge, I would start looking at one
specific syscall, say 'stat'. Then I would find out which syscall
exactly it is

$ dtrace -n 'syscall::stat*:entry{trace(copyinstr(arg0))}'

Then I would record every function being executed during the syscall
processing, with the function return values. (let's say it's stat64, and
you are doing 'ls -l /foo/bar/duh/f'

$ dtrace -x flowindent -n 
'syscall::stat64:entry/copyinstr(arg0)=="/foo/bar/duh/f"/{self->go=1}
fbt:::entry/self->go/{}
fbt:::return/self->go/{trace(arg1)}
syscall::stat64:return/self->go/{self->go=0; exit(0)}'

Then compare one run when the syscall succeeded and one where it failed.

-- 
        Vlad

Attachment: pgp5iSfDXvlsj.pgp
Description: PGP signature

_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to