[Gluster-devel] 3.5.1qa4 performances

Pranith Kumar Karampuri pkarampu at redhat.com
Thu Dec 26 05:58:59 UTC 2013


Emmanuel,
     When files are created and deleted even before self-heal completes, stale index files will be left in .glusterfs/indices/xattrop directory. Self-heal-daemon is supposed to delete these stale indices. Self-heal-daemon figures out that these indices are stale by checking if the op_errno on the lookup is ENOENT. But now it could return ESTALE with the following patch. So the stale index file remains and lookups keep on happening forever.

This is the patch which introduced the change in behavior:

commit d1879d04e39258ea25a49eed3244b395d4af2c1d
Author: Anand Avati <avati at redhat.com>
Date:   Thu Nov 21 06:48:17 2013 -0800

    core: fix errno for non-existent GFID
    
    When clients refer to a GFID which does not exist, the errno to
    be returned in ESTALE (and not ENOENT). Even though ENOENT might
    look "proper" most of the time, as the application eventually expects
    ENOENT even if a parent directory does not exist, not returning
    ESTALE results in resolvers (FUSE and GFAPI) to not retry resolution
    in uncached mode. This can result in spurious ENOENTs during
    concurrent path modification operations.

Pranith
----- Original Message -----
> From: "Emmanuel Dreyfus" <manu at netbsd.org>
> To: "Pranith Kumar Karampuri" <pkarampu at redhat.com>
> Cc: gluster-devel at nongnu.org
> Sent: Thursday, December 26, 2013 11:22:45 AM
> Subject: Re: [Gluster-devel] 3.5.1qa4 performances
> 
> Emmanuel Dreyfus <manu at netbsd.org> wrote:
> 
> > I search .glusterfs/cf/1b/cf1bdf4f-b71c-4fda-963d-b7e4547e1b7c on each
> > bricks: it does not exist anywhere. I tried with other "Stale NFS file
> > handle" messages, and the file never exists in glusterfs index tree.
> 
> I suspect it has something to do with that warning on client log, which
> happens
> once:
> 
> [2013-12-25 06:04:00.111064] W [client-rpc-fops.c:1744:client3_3_xattrop_cbk]
> 0-gfs351-client-0: remote operation failed: Undefined error: 0. Path:
> /manu/usr/src/games/backgammon/common_source/obj/one.o
> (cf1bdf4f-b71c-4fda-963d-b7e4547e1b7c)
> 
> Althought the index does not exist, the file does:
> silo:/export/wd2a//manu/usr/src/games/backgammon/common_source/obj/one.o
> hangar:/export/wd1a//manu/usr/src/games/backgammon/common_source/obj/one.o
> 
> Both have same extended attributes:
> 
> trusted.afr.gfs351-client-0
>    000   00 00 00 00 00 00 00 00 00 00 00 00                ............
> trusted.afr.gfs351-client-1
>    000   00 00 00 00 00 00 00 00 00 00 00 00                ............
> trusted.afr.gfs351-gfid
>    000   da 17 69 27 49 8f 4d e6 99 2b 53 25 be 9d 11 a3    ..i'I.M..+S%....
> 
> For parent directory, trusted.gfid is the same on all bricks.
> trusted.glusterfs.dht it:
> silo:/export/wd2a//manu/usr/src/games/backgammon/common_source/obj
>    000   00 00 00 01 00 00 00 00 00 00 00 00 7f ff ff fe    ...............
> hangar:/export/wd1a//manu/usr/src/games/backgammon/common_source/obj
>    000   00 00 00 01 00 00 00 00 00 00 00 00 7f ff ff fe    ...............
> hangar:/export/wd3a//manu/usr/src/games/backgammon/common_source/obj
>    000   00 00 00 01 00 00 00 00 7f ff ff ff ff ff ff ff    ...............
> debacle:/export/wd1a//manu/usr/src/games/backgammon/common_source/obj
>    000   00 00 00 01 00 00 00 00 7f ff ff ff ff ff ff ff    ...............
> 
> --
> Emmanuel Dreyfus
> http://hcpnet.free.fr/pubz
> manu at netbsd.org
> 




More information about the Gluster-devel mailing list