From: dedourek@jupiter.sun.csd.unb.ca (John DeDourek)
Subject: Re: NFS write errors
Keywords: NFS
Organization: University of New Brunswick
Date: Tue, 29 Sep 1992 17:20:00 GMT

In article <1992Sep29.011847.27438@fawlty.towers.oz.au> stuart@fawlty.towers.oz.au (Stuart Walker) writes:
>We have a problem with NFS write errors reported on the console, which I have no
>idea how to interpret. The syntax of the errors is:
>
>  NFS write error 13 on host fawlty fh 1016 1 A0000 F982 7D583C2A A0000 2 3449CA70
>
>Now these are probably due to permissions problems on one of the filesystems.
>
>But, I'd like to know how I can directly relate this information to the actual
>file in question.  I cannot seem to find anything directly related to this
>type of message in the info database.
>
>We are running AIX 3.1.5
>

I am working on a similar problem myself, with print spooling, on a diskless
client, with AIX 3.2.  I was able to find the description of how to do
this on IBM LINK.  

NFS write error 13 is indeed permission violation

the numbers following "fh" are eight 32-bit quantities represented as
8-digit hex numbers; it is, in my opinion, confusing that these numbers
are printed without leading zeroes.  So your message is

00001016 00000001 0000A0000 0000F982 7D583C2A 000A0000 00000002 3449CA70

Number these words 1 through 8.  Under AIX 3.2, word 1 is interpretted
as two 16-bit integers, in your case 0000 and 1016.  This looks wrong,
so either you transcribed the numbers wrong, or 3.1.5 works differently.
In my case the number was 00180002 giving 0018 and 0002, or converting
to decimal, 24 and 2.  

Now ON THE SERVER, "ls -l /dev" gives all the devices, listing
"major, minor numbers" for each logical disk.  These are the two
numbers before the date.  Find the logical volume with the matching
numbers.

Now, again ON THE SERVER, do a "mount" command which will display a
list of logical volumes ("mounted" column) and the corresponding
directory ("mounted over").  You want the directory name.

So if 24,2 was lv00 and /dev/lv00 was mounted over /unbhome, then
the latter is the directory.

Now, returning to the message, the left half of word 4 would be
the inode number of the file.  Again, you have 0000F982, which
would give an inode of 0000; this can't be right.  Say you had
08022A92, giving 0802 in the left half, or in decimal 2050; you want
inode number 2050 in the /unbhome file system.

Again, on the server, do

find /unbhome -inum 2050 -xdev -print

and you should have the name of the file, provided, of course, it hasn't
been deleted and the inode used for a newer file.  In the find command,
replace /unbhome and 2050 by the directory and decimal inode obtained
from your message.

Again, I don't know why the numbers in your message don't give reasonable
results; either they were wrong in your message, or 3.1.5 has a different
structure.  

Also, I am not an internals expert on AIX so I can't absolutely vouch
for the accurracy of the above interpretation.  It my attempt at an
explanation of the information I extracted from a Q&A exchange on
IBM link.  It did seem to generate reasonable values in the
case of the problem I am chasing on AIX 3.2.

dedourek@jupiter.sun.csd.unb.ca
Newsgroups: comp.unix.aix,alt.toolkits.xview