From ff6082e4d497f5718ee3e342939a1802cd420a77 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sat, 15 Jan 2011 14:11:56 +0100 Subject: [PATCH] Fix bug introduced by f5677ab Commit f5677ab added the _VerifyOob functionality, but there are two issues with this function: - a real bug, as objects.Node doesn't have a 'master' attribute - a design bug, as we need to verify the OOB programs not only on current masters, but on all nodes that can become masters via the auto-promote functionality; otherwise, an automated cluster operation could cause the cluster to become inconsistent (error in verify) The Node.master bug didn't appear in QA because it is triggered only with non-master-candidate nodes, and our QA doesn't test this combination (and neither other node flags combination). Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/cmdlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index e08d903dc..76a892228 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1838,7 +1838,7 @@ class LUVerifyCluster(LogicalUnit): node = ninfo.name # We just have to verify the paths on master and/or master candidates # as the oob helper is invoked on the master - if ((ninfo.master_candidate or ninfo.master) and + if ((ninfo.master_candidate or ninfo.master_capable) and constants.NV_OOB_PATHS in nresult): for path_result in nresult[constants.NV_OOB_PATHS]: self._ErrorIf(path_result, self.ENODEOOBPATH, node, path_result) -- GitLab