Hi,<div><br></div><div>We recently encounter the bug which was reported here:</div><div><a href="https://bugs.launchpad.net/sheepdog-project/+bug/1327037" target="_blank">https://bugs.launchpad.net/sheepdog-project/+bug/1327037</a></div><div><br></div><div>I'm not sure if this is the root cause, but by changing the initial value of ret in function recover_object_from_replica(in recovery.c)</div><div>ret = SD_RES_SUCCESS </div><div>to </div><div>ret = SD_RES_NO_OBJ (actually anything but SD_RES_SUCCESS), i'm able to avoid the lose of data.</div><div><br></div><div>The reason is that, when the node try to recover it self to match the newest epoch, the nr_copies in function <span style="line-height: 1.2;">recover_object_from_replica is zero, so it return ret == SD_RES_SUCCESS while it actually skipped all the recover </span>function<span style="line-height: 1.2;"> in the loop. I don't know why nr_copies is zero though.</span></div><div><span style="line-height: 1.2;"><br></span></div><div><span style="line-height: 1.2;">Thanks,</span></div><div><span style="line-height: 1.2;">Yang</span></div>