[Bugs] [Bug 1323040] Inconsistent directory structure on dht subvols caused by parent layouts going stale during entry create operations because of fix-layout

bugzilla at redhat.com bugzilla at redhat.com
Fri Apr 22 17:28:58 UTC 2016


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



--- Comment #16 from Vijay Bellur <vbellur at redhat.com> ---
COMMIT: http://review.gluster.org/13885 committed in master by Raghavendra G
(rgowdapp at redhat.com) 
------
commit 823bda0f28cba1b0632d99a22cdecaee16c6db56
Author: Raghavendra G <rgowdapp at redhat.com>
Date:   Fri Apr 1 15:16:23 2016 +0530

    cluster/distribute: detect stale layouts in entry fops

    dht_mkdir ()
    {
          first-hashed-subvol = hashed-subvol for "bname" in in-memory
                                layout of "parent";
          inodelk (SETLKW, parent, "LAYOUT_HEAL_DOMAIN", "can be any
                   subvol, but we choose first-hashed-subvol randomly");
          {
    begin:
                hashed-subvol = hashed-subvol for "bname" in in-memory
                                layout of "parent";
                hash-range = extract hashe-range from layout of "parent";

                ret = mkdir (parent/bname, hashed-subvol, hash-range);
                if (ret == "hash-value doesn't fall into layout stored on
                           the brick (this error is returned by posix-mkdir)")
                {
                    refresh_parent_layout ();
                    goto begin;
                }

          }
          inodelk (UNLCK, parent, "LAYOUT_HEAL_DOMAIN",
                   "first-hashed-subvol");

          proceed with other parts of dht_mkdir;
    }

    posix_mkdir (parent/bname, client-hash-range)
    {

           disk-hash-range = getxattr (parent, "dht-layout-key");
           if (disk-hash-range != client-hash-range) {
                  fail-with-error ("hash-value doesn't fall into layout
                                    stored on the brick");
                  return 0;
           }

           continue-with-posix-mkdir;
    }

    Similar changes need to be done for dentry operations like create,
    symlink, link, unlink, rmdir, rename. These will be addressed in
    subsequent patches. This patch addresses only mkdir codepath.

    This change breaks stripe tests, as on some striped subvols dht layout
    xattrs are not set for some reason. This results in failure of
    mkdir. Since striped volumes are always created with dht, some tests
    associated with stripe also fail. So, I am making following tests
    changes (since stripe is out of maintainance):
    * modify ./tests/basic/rpc-coverage.t to not to use striped volumes
    * mark all (2) tests in tests/bugs/stripe/ as bad tests

    Change-Id: Idd1ae879f24a48303dc743c1bb4d91f89a629e25
    BUG: 1323040
    Signed-off-by: Raghavendra G <rgowdapp at redhat.com>
    Reviewed-on: http://review.gluster.org/13885
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    Reviewed-by: N Balachandran <nbalacha at redhat.com>

-- 
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=2XhTov2gpT&a=cc_unsubscribe


More information about the Bugs mailing list