[OpenAFS-devel] ReallyRead failures (was Re: CopyOnWrite failures continue still)

Chaskiel M Grundman cg2v@andrew.cmu.edu
Thu, 28 Mar 2002 16:08:41 -0500


--On Thursday, March 28, 2002 12:37:54 -0500 hoffman@cs.pitt.edu wrote:

>     Sun Mar 24 14:49:51 2002 ReallyRead(): read failed device 2 inode
> 80AA9E0 errno 5
>
> Errno 5 is "I/O error".

What is really going on here is that the fileserver tried to read off the 
end of a directory and got a zero back from read. see the following snippet 
from viced/physio.c:ReallyRead. We don't know what causes it, but as far as 
I can tell from reading the code, it must be the case that the directory 
hash table must be corrupt in order to trigger it.

    code = FDH_READ(fdP, data, PAGESIZE);
    if (code != PAGESIZE) {
        if (code < 0)
            code = errno;
        else
            code = EIO;
        ViceLog (0,
                 ("ReallyRead(): read failed device %X inode %s errno %d\n",
                  file->dirh_handle->ih_dev,
                  PrintInode(NULL, file->dirh_handle->ih_ino), code));

For whatever reason, these errors do not end up offlining the volume until 
a dir/dir.c:Create() or Delete() fails unexpetedly.