From dba68ac171026793da8a6f07d58c053d4616d068 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Tue, 29 Nov 2011 09:42:43 -0800
Subject: [PATCH] BGQ - added support for checking of a nodeboard in meta state
 instead of ignoring all nodeboards in error state.

---
 .../select/bluegene/bl_bgq/bridge_status.cc        | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/plugins/select/bluegene/bl_bgq/bridge_status.cc b/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
index d46a17b5992..565ca77ee6e 100644
--- a/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
+++ b/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
@@ -640,13 +640,15 @@ static void _handle_midplane_update(ComputeHardware::ConstPtr bgq,
 
 	for (i=0; i<16; i++) {
 		NodeBoard::ConstPtr nb_ptr = bridge_get_nodeboard(mp_ptr, i);
-		/* FIXME: the Hardware::Error can/should be taken away after
-		   IBM fixes it so when a cnode is in an error state
-		   it doesn't put the nodeboard in an error state as
-		   well.
+		/* When a cnode is in error state a nodeboard is also
+		   set in an error state.  Since we want to track on
+		   the cnode level and not the nodeboard level we can
+		   use the isMetaState option that will tell me of
+		   this state.  If it isn't set then the nodeboard
+		   itself is in an error state so procede.
 		*/
-		if (nb_ptr && (nb_ptr->getState() != Hardware::Available)
-		    && (nb_ptr->getState() != Hardware::Error))
+		if (nb_ptr && !nb_ptr->isMetaState()
+		    && (nb_ptr->getState() != Hardware::Available))
 			_handle_bad_nodeboard(
 				nb_ptr->getLocation().substr(7,3).c_str(),
 				ba_mp->coord_str, nb_ptr->getState());
-- 
GitLab