<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hello,</p>
<p>In AFR we currently allow look-ups to pass through without taking
into account whether the lookup is served from the good or bad
brick. We always serve from the good brick whenever possible, but
if there is none, we just serve the lookup from one of the bricks
that we got a positive reply from.<br>
</p>
<p> We found a bug [1] due to this behavior were the iatt values
returned in the lookup call was bad and caused the client to hang.
The proposed fix [2] was to fail look ups when we definitely know
the lookup can't be trusted (by virtue of AFR xattrs indicating
the replies we got from the up bricks are indeed bad). <br>
</p>
<p>Note that this fix is <b>only</b> for replica 3 or arbiter
volumes (not replica 2, where there is no notion of quorum). But
we want to 'harden' the fix by not allowing any look ups at all
if quorum is not met (or) it is met but there are no good copies.<br>
</p>
<p>Some implications of this:</p>
<p>-If a file ends up in data/meta data split-brain in replica
3/arbiter (rare occurrence), we won't be able to delete it from
the mount.</p>
<p>-Even if the only brick that is up is the good copy, we still
fail it due to lack of quorum.<br>
</p>
<p>Does any one have comments/ feedback?</p>
<p>Thanks,</p>
<p>Ravi<br>
</p>
<p>[1] <a class="moz-txt-link-freetext" href="https://bugzilla.redhat.com/show_bug.cgi?id=1467250">https://bugzilla.redhat.com/show_bug.cgi?id=1467250</a></p>
<p>[2] <a class="moz-txt-link-freetext" href="https://review.gluster.org/#/c/17673/">https://review.gluster.org/#/c/17673/</a> (See review comments on
the landing page if interested)<br>
</p>
</body>
</html>