[sheepdog] [PATCH v2 2/2] sheep: run object recovery even if sheep was stopped cleanly

MORITA Kazutaka morita.kazutaka at gmail.com
Thu Jul 11 06:28:27 CEST 2013


From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>

Currently, if the administrator run 'collie cluster shutdown' or power
failure (all the nodes stop with the same epoch information) happens
while object recovery is ongoing, sheepdog cannot restart the recovery
after all the sheeps come back.  We should kick recovery even if we
don't need to increment epoch.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
 sheep/group.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sheep/group.c b/sheep/group.c
index 2030c44..473c8d8 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -762,7 +762,10 @@ static void update_cluster_info(const struct join_message *msg,
 
 			start_recovery(main_thread_get(current_vnode_info),
 				       old_vnode_info, true);
-		}
+		} else
+			start_recovery(main_thread_get(current_vnode_info),
+				       main_thread_get(current_vnode_info),
+				       false);
 
 		if (have_enough_zones())
 			sys->status = SD_STATUS_OK;
-- 
1.7.9.5




More information about the sheepdog mailing list