Re: Stale NFS file handle, then EINVAL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Emmanuel Dreyfus <manu@xxxxxxxxxx> wrote:

> Increasing the log level helps: ESTALE happens here in client3_1_lookup_cbk()
> 
>         if ((!uuid_is_null (inode->gfid))  
>             && (uuid_compare (stbuf.ia_gfid, inode->gfid) != 0)) {
>                 gf_log (frame->this->name, GF_LOG_DEBUG,
>                         "gfid changed for %s", local->loc.path);
>                 rsp.op_ret = -1;    
>                 op_errno = ESTALE;  
>                 goto out;
>         }

And indeed the link file has a different gfid, as I understand this is the
problem. But how can this happen?

server# ls -l /export/*/usr/src/gnu/dist/binutils/md5.sum
-rw-r--r--  1 root  wheel  413660 Feb  2  2006
/export/wd1a/usr/src/gnu/dist/binutils/md5.sum
---------T  1 root  wheel       0 Jul 19 09:45
/export/wd3a/usr/src/gnu/dist/binutils/md5.sum

server# getextattr -x trusted.gfid /export/*/usr/src/gnu/dist/binutils/md5.sum
/export/wd1a/usr/src/gnu/dist/binutils/md5.sum  
   000   95 77 11 b6 37 de 40 cc a9 dd c8 e1 69 7d 99 16    .w..7.@.....i}..
/export/wd3a/usr/src/gnu/dist/binutils/md5.sum  
   000   70 ce 72 2a de a5 49 98 ad c5 1f aa 83 56 05 02    p.r*..I......V..

I can reproduce that situation by a RENAME operation:

server# getextattr -x trusted.gfid  /export/*/xxxhosts
/export/wd1a/xxxhosts   
   000   52 a0 f4 f6 13 11 4e c4 94 af 36 fc b3 0a 00 f1    R.....N...6.....
/export/wd3a/xxxhosts   
   000   52 a0 f4 f6 13 11 4e c4 94 af 36 fc b3 0a 00 f1    R.....N...6.....

client# mv xxx xxxhosts

server# getextattr -x trusted.gfid  /export/*/xxxhosts 
/export/wd1a/xxxhosts   
   000   29 61 c8 54 f5 91 43 9a 8e 06 82 38 29 b7 4c ad    )a.T..C....8).L.
/export/wd3a/xxxhosts   
   000   52 a0 f4 f6 13 11 4e c4 94 af 36 fc b3 0a 00 f1    R.....N...6.....

But the file can be accessed without getting ESTALE, and gfid quickly gets
healed . Perhaps this is a race condition? 



-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu@xxxxxxxxxx



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux