<html><body><div style="font-family: garamond,new york,times,serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>From: </b>"Emmanuel Dreyfus" &lt;manu@netbsd.org&gt;<br><b>To: </b>"Ravishankar N" &lt;ravishankar@redhat.com&gt;, "Gluster Devel" &lt;gluster-devel@gluster.org&gt;<br><b>Sent: </b>Wednesday, December 3, 2014 10:14:22 AM<br><b>Subject: </b>Re: [Gluster-devel] question on glustershd<br><div><br></div>Ravishankar N &lt;ravishankar@redhat.com&gt; wrote:<br><div><br></div>&gt; afr_shd_full_healer() is run only when we run 'gluster vol heal &lt;volname&gt;<br>&gt; full`, doing a full brick traversal (readdirp) from the root and<br>&gt; attempting heal for each entry.<br><div><br></div>Then we agree that "gluster vol heal $volume full" may fail to heal some<br>files because of inode lock contention, right?<br><div><br></div>If that is expected behavior, then the tests are wrong. For instance in<br>tests/basic/afr/entry-self-heal.t we do "gluster vol heal $volume full"<br>and we check that no unhealed files are left behind. <br><div><br></div>Did I miss something, or do we have to either fix afr_shd_full_healer()<br>or tests/basic/afr/entry-self-heal.t ?<br></blockquote><div><br></div><div>Typical use of "heal full" is &nbsp;in the event of a disk replacement where one of the bricks in the replica set is totally empty.</div><div>And in a volume where both (assuming 2 way replication to keep the discussion simple) children of AFR are on the same node, SHD would launch two healers.</div><div>Each healer does readdirp() only on the brick associated with it (see how @subvol is initialised in&nbsp;afr_shd_full_sweep()).</div><div>I guess in such scenarios, the healer associated with the brick that was empty would have no entries to read, and as a result, nothing to heal from it to the other brick.</div><div>In that case, there is no question of lock contention of the kind that you explained above?</div><div><br></div><div>-Krutika</div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;">-- <br>Emmanuel Dreyfus<br>http://hcpnet.free.fr/pubz<br>manu@netbsd.org<br>_______________________________________________<br>Gluster-devel mailing list<br>Gluster-devel@gluster.org<br>http://supercolony.gluster.org/mailman/listinfo/gluster-devel<br></blockquote><div><br></div></div></body></html>