<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 16, 2014 at 3:38 PM, Saeki Masaki <span dir="ltr"><<a href="mailto:saeki.masaki@po.ntts.co.jp" target="_blank">saeki.masaki@po.ntts.co.jp</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">(2014/12/16 15:58), Jinzhi Chen wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
in the `cluster_make_fs` function(sheep/ops.c)..<br>
<br>
sheep first calls sd_store->format(), then calls sd_store->init().<br>
It seems that sheep first remove the .stale dir, then create the .stale dir.<br>
am I right?<br>
<br>
then I do some tests about cluster format.<br>
first format the cluster  and then check whether .stale dir is created.<br>
during my test. sometimes .stale is created, sometimes is not.<br>
which is very odd.<br>
<br>
<br>
then I add sync() function between `format()` and `init()`, and it seems<br>
it worked. every time cluster format creates .stale dir.<br>
<br>
-----<br>
diff --git a/sheep/ops.c b/sheep/ops.c<br>
index 9eb3280..204d586 100644<br>
--- a/sheep/ops.c<br>
+++ b/sheep/ops.c<br>
@@ -272,6 +272,7 @@ static int cluster_make_fs(const struct sd_req *req,<br>
struct sd_rsp *rsp,<br>
         if (ret != SD_RES_SUCCESS)<br>
                 return ret;<br>
<br>
+       sync();<br>
         ret = sd_store->init();<br>
         if (ret != SD_RES_SUCCESS)<br>
                 return ret;<br>
<br>
<br>
<br>
what do you think<br>
</blockquote>
<br></div></div>
I don't have enough knowledge about sync() system call.<br>
so there may be effective.<br>
<br>
however, I think it is not enough.<br>
I have seen the following message.(<a href="https://bugs.launchpad.net/sheepdog-project/+bug/1402887" target="_blank">https://bugs.<u></u>launchpad.net/sheepdog-<u></u>project/+bug/1402887</a>)<br>
<br>
/var/log/sheep1/sheep.log:Dec 16 10:52:15 NOTICE [main] nfs_init(607) nfs server service is not compiled<br>
/var/log/sheep1/sheep.log:Dec 16 10:52:59 NOTICE [main] make_stale_dir(233) mkdir /var/lib/sheepdog/data1/obj/.<u></u>stale<br>
/var/log/sheep1/sheep.log:Dec 16 10:52:59 NOTICE [util] rmdir_r(488) rmdir /var/lib/sheepdog/data1/obj/.<u></u>stale<br>
<br>
sd_store->init() and sd_store->format() is executed at main thread sequential.<br>
but rmdir_r executed in worker thread ( name [util] )<br></blockquote><div>sorry, i didn't notice that. so i thought that maybe the issue of fs operation cache.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
so, if worker thread is lazy, it will occurs again.<br></blockquote><div>yeah, you are right. </div><div>we need to make sure that `[util]rmdir_r` and the `main` thread execute sequential.</div><div>maybe a eventfd for thread communication is needed.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Regards,<br>
Saeki.<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Thanks,<br>
Jinzhi Chen<br>
<br>
On Tue, Dec 16, 2014 at 10:28 AM, Saeki Masaki <<a href="mailto:saeki.masaki@po.ntts.co.jp" target="_blank">saeki.masaki@po.ntts.co.jp</a>><br>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I posted a bug in launchpad:<br>
   <a href="https://bugs.launchpad.net/sheepdog-project/+bug/1402887" target="_blank">https://bugs.launchpad.net/<u></u>sheepdog-project/+bug/1402887</a><br>
<br>
After execute cluster format .stale directory was removed.<br>
I think that is a bad influence on the automatic recovery.<br>
<br>
Regards, Saeki.<br>
<br>
--<br>
sheepdog-users mailing lists<br>
<a href="mailto:sheepdog-users@lists.wpkg.org" target="_blank">sheepdog-users@lists.wpkg.org</a><br>
<a href="http://lists.wpkg.org/mailman/listinfo/sheepdog-users" target="_blank">http://lists.wpkg.org/mailman/<u></u>listinfo/sheepdog-users</a><br>
<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
</div></div></blockquote></div></div></div>