<div dir="ltr"><br><div class="gmail_extra">Thanks very much for your help, and please see my inline comments/questions.<br><br><div class="gmail_quote">On Thu, Nov 7, 2013 at 2:30 AM, Samuel Merritt <span dir="ltr"><<a href="mailto:sam@swiftstack.com" target="_blank">sam@swiftstack.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On 11/6/13 7:12 AM, Daniel Li wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
     I have a question about swift:  what does swift do if the auditor<br>
find that all 3 replicas are corrupt?<br>
will it notify the owner of the object(email to the account owner)?<br>
what will happen if the GET request to the corrupted object?<br>
will it return a special error telling that all the replicas are corrupted?<br>
  Or will it just say that the object is not exist?<br>
  Or it just return one of the corrupted replica?<br>
  Or something else?<br>
</blockquote>
<br></div></div>
If all 3 (or N) replicas are corrupt, then the auditors will eventually quarantine all of them, and subsequent GET requests will receive 404 responses. <br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

No notifications are sent, nor is it really feasible to start sending them. "The auditor" is not a single process; there is one Swift auditor process running on each node in a cluster. Therefore, when an object is quarantined, there's no way for its auditor to know if the other copies are okay or not.<br>


<br>
Note that this is highly unlikely to ever happen, at least with the default of 3 replicas. When an auditor finds a corrupt object, it quarantines it (moves it to a "quarantines" directory). </blockquote><div> Did you mean that when the auditor found the corruption, it did not copy good replica from other object server to overwrite the corrupted one, it just moved it to a quarantines directory?</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Then, since that object is missing, the replication processes will recreate the object by copying it from a node with a good copy. </blockquote>
<div>When did the replication processes recreated the object by copying it from a node with a good copy? Does the auditor send a message to replication so the replication will do the copy immediately? And what is a 'good' copy? Does the good copy's MD5 value is checked before copying? </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You'd need to have all replicas become corrupt within a very short timespan so that the replicators don't get a chance to replace the damaged ones.<br>


<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</blockquote></div><br></div></div>