[Bugs] [Bug 1329062] 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
Mon Apr 25 09:30:48 UTC 2016


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



--- Comment #3 from Vijay Bellur <vbellur at redhat.com> ---
COMMIT: http://review.gluster.org/14040 committed in release-3.7 by Raghavendra
G (rgowdapp at redhat.com) 
------
commit 0ce1a038ab54a52a0c295e830abe035d4113ba83
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: 1329062
    Signed-off-by: Raghavendra G <rgowdapp at redhat.com>
    Reviewed-on: http://review.gluster.org/14040
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list