[Bugs] [Bug 1438411] [Ganesha + EC] : Input/ Output Error while creating LOTS of smallfiles

bugzilla at redhat.com bugzilla at redhat.com
Mon Apr 3 11:47:15 UTC 2017


https://bugzilla.redhat.com/show_bug.cgi?id=1438411



--- Comment #2 from Pranith Kumar K <pkarampu at redhat.com> ---
(In reply to Pranith Kumar K from comment #1)
>     Problem:
>     local->loc.gfid in dht_lookup_directory() will be null-gfid for a fresh
> lookup.
>     dht_lookup_dir_cbk() updates local->loc.gfid while in other thread
> dht_lookup_directory()
>     is still winding lookup calls to subvolumes so there is a chance of
> partial gfid being
>     seen by EC.
>     
>     We saw in 12x(4+2) volume, ec is receiving an loc where the gfid has
> last 12 bytes matching

Sorry, just last 10 bytes not 12 bytes.

>     with the gfid of the directory and the first 4 bytes are all-zeros. This
> is leading to EC
>     erroring out the lookup with EINVAL which leads to NFS failing lookup
> with EIO.
>     
>     snip from gdb:
>     $37 = (dht_local_t *) 0x7fde5de5b3cc
>     (gdb) p /x $37->loc.gfid
>     $39 = {0x3b, 0x82, 0x10, 0x5e, 0x40, 0x65, 0x43, 0x14, 0xa0, 0xc6, 0x8,
> 0xf5,
>     0x6c, 0x2c, 0xb8, 0x56}
>     (gdb) fr 7
>     state=<optimized out>) at ec-generic.c:837
>     837                     ec_lookup_rebuild(fop->xl->private, fop, cbk);
>     (gdb) p /x fop->loc[0].gfid
>     $40 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x14, 0xa0, 0xc6, 0x8, 0xf5,
> 0x6c,
>     0x2c, 0xb8, 0x56}
>     
>     snip from log:
>     [2017-01-29 03:22:30.132328] W [MSGID: 122019]
>     [ec-helpers.c:354:ec_loc_gfid_check] 0-butcher-disperse-4: Mismatching
> GFID's
>     in loc [2017-01-29 03:22:30.132709] W [MSGID: 112199]
>     [nfs3-helpers.c:3515:nfs3_log_newfh_res] 0-nfs-nfsv3:
>     /linux-4.9.5/Documentation => (XID: b27b9474, MKDIR: NFS: 5(I/O error),
> POSIX:
>     5(Input/output error)), FH: exportid
> 00000000-0000-0000-0000-000000000000, gfid
>     00000000-0000-0000-0000-000000000000, mountid
>     00000000-0000-0000-0000-000000000000 [Invalid argument]
>     
>     Fix:
>     update local->loc.gfid in last-call to make sure there are no races.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=BwV7AShOKX&a=cc_unsubscribe


More information about the Bugs mailing list