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