karthik-us 9b58cfc83c cluster/afr: Send truncate on arbiter brick from SHD
Problem:
In an arbiter volume configuration SHD will not send any writes onto the arbiter
brick even if there is data pending marker for the arbiter brick. If we have a
arbiter setup on the geo-rep master and there are data pending markers for the files
on arbiter brick, SHD will not mark any data changelog during healing. While syncing
the data from master to slave, if the arbiter-brick is considered as ACTIVE, then
there is a chance that slave will miss out some data. If the arbiter brick is being
newly added or replaced there is a chance of slave missing all the data during sync.

Fix:
If there is data pending marker for the arbiter brick, send truncate on the arbiter
brick during heal, so that it will record truncate as the data transaction in changelog.

Change-Id: I3242ba6cea6da495c418ef860d9c3359c5459dec
fixes: bz#1687672
Signed-off-by: karthik-us <ksubrahm@redhat.com>
2019-03-12 20:51:47 +00:00
..
2018-12-14 18:11:01 +00:00
2016-07-11 06:33:38 -07:00
2018-08-13 13:43:51 +00:00
2018-09-17 06:24:15 +00:00
2019-02-07 13:27:53 +05:30
2015-06-09 06:24:47 -07:00

Regression tests framework for GlusterFS

Prereq

  • Build and install the version of glusterfs with your changes. Make sure the installed version is accessible from $PATH.

Prereq for geo-rep regression tests.

How-To

  • To mount glusterfs, NEVER use 'mount -t glusterfs', instead use 'glusterfs -s ' method. This is because with the patch build setup doesnot install the /sbin/mount.glusterfs necessary, where as the glusterfs binary will be accessible with $PATH, and will pick the right version.
  • (optional) Set environment variables to specify location of export directories and mount points. Unless you have special requirements, the defaults should just work. The variables themselves can be found at the top of tests/include.rc. All of them can be overriden with environment variables.

Usage

  • Execute /usr/share/glusterfs/run-tests.sh as root.

  • If you want to run individual tests located in /usr/share/glusterfs/tests as opposed to the full test-suite, invoke it as /usr/share/glusterfs/run-tests.sh [pattern]*, where pattern can be:

    • the trailing parts of the full path of a test, e.g. tests/basic/mount.t
    • the name of a file or directory, e.g self-heal.t or basic/
    • bug number, which will match against numbered bugs in the tests/bugs/ directory.
    • a glob pattern (see man 7 glob for mor info on globs)
  • To execute single ".t" file, use "prove -vf /path/to/.t"

  • If some test cases fail, report to GlusterFS community at gluster-devel@gluster.org.

Reminder

  • BE WARNED THAT THE TEST CASES DELETE GLUSTERD_WORKDIR * !!!