hail: add an extra safety check in relocate
authorIustin Pop <iustin@google.com>
Wed, 14 Sep 2011 10:43:38 +0000 (12:43 +0200)
committerIustin Pop <iustin@google.com>
Wed, 26 Oct 2011 09:59:04 +0000 (11:59 +0200)
If we select the primary as new secondary, better to fail than return
wrong data to Ganeti.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
(cherry picked from commit f25508bef4e85032f0468e5a6f0f8930ff154e66)

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

htools/Ganeti/HTools/IAlloc.hs

index 81e6dfd..91b3706 100644 (file)
@@ -283,6 +283,8 @@ processRelocate gl nl il idx 1 exndx = do
       snode = Instance.sNode inst
   when (snode == sorig) $
        fail "Internal error: instance didn't change secondary node?!"
+  when (snode == pnode) $
+       fail "Internal error: selected primary as new secondary?!"
 
   nodes' <- if (nodes == [pnode, snode])
             then return [snode] -- only the new secondary is needed