[Bugs] [Bug 1516313] Bringing down data bricks in cyclic order results in arbiter brick becoming the source for heal.

bugzilla at redhat.com bugzilla at redhat.com
Mon Nov 27 18:13:57 UTC 2017


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



--- Comment #2 from Worker Ant <bugzilla-bot at gluster.org> ---
COMMIT: https://review.gluster.org/18843 committed in release-3.13 by \"Karthik
U S\" <ksubrahm at redhat.com> with a commit message- cluster/afr: Fix for arbiter
becoming source

Problem:
When eager-lock is on, and two writes happen in parallel on a FD
we were observing the following behaviour:
- First write fails on one data brick
- Since the post-op is not yet happened, the inode refresh will get
  both the data bricks as readable and set it in the inode context
- In flight split brain check see both the data bricks as readable
  and allows the second write
- Second write fails on the other data brick
- Now the post-op happens and marks both the data bricks as bad and
  arbiter will become source for healing

Fix:
Adding one more variable called write_suvol in inode context and it
will have the in memory representation of the writable subvols. Inode
refresh will not update this value and its lifetime is pre-op through
unlock in the afr transaction. Initially the pre-op will set this
value same as read_subvol in inode context and then in the in flight
split brain check we will use this value instead of read_subvol.
After all the checks we will update the value of this and set the
read_subvol same as this to avoid having incorrect value in that.

Change-Id: I2ef6904524ab91af861d59690974bbc529ab1af3
BUG: 1516313
Signed-off-by: karthik-us <ksubrahm at redhat.com>
(cherry picked from commit 19f9bcff4aada589d4321356c2670ed283f02c03)

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


More information about the Bugs mailing list