<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>