[sheepdog] [PATCH stable-0.6 3/3] sheep: run object recovery even if sheep was stopped cleanly

Hitoshi Mitake mitake.hitoshi at gmail.com
Tue Aug 13 07:44:53 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>
Signed-off-by: Liu Yuan <namei.unix at gmail.com>
---
 sheep/group.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sheep/group.c b/sheep/group.c
index 0f61984..2038744 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -923,7 +923,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.8.1.2




More information about the sheepdog mailing list