From 110bb15073b7bf15c524579b768a869d0752e861 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Wed, 12 Sep 2012 17:21:26 -0700
Subject: [PATCH] BGQ - fixed missing lock and wrong order of unlock

---
 src/plugins/select/bluegene/bl_bgq/bridge_status.cc | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/plugins/select/bluegene/bl_bgq/bridge_status.cc b/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
index 28795c9bd55..a174a0a0b8b 100644
--- a/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
+++ b/src/plugins/select/bluegene/bl_bgq/bridge_status.cc
@@ -1030,10 +1030,10 @@ void event_handler::handleBlockStateChangedRealtimeEvent(
 	slurm_mutex_lock(&block_state_mutex);
 	bg_record = find_bg_record_in_list(bg_lists->main, bg_block_id);
 	if (!bg_record) {
-		unlock_slurmctld(job_read_lock);
 		slurm_mutex_unlock(&block_state_mutex);
-		info("bridge_status: bg_record %s isn't in the main list",
-		     bg_block_id);
+		unlock_slurmctld(job_read_lock);
+		debug2("bridge_status: bg_record %s isn't in the main list",
+		       bg_block_id);
 		return;
 	}
 
@@ -1261,6 +1261,7 @@ void event_handler::handleNodeStateChangedRealtimeEvent(
 		      bridge_hardware_state_string(event.getState()));
 		slurm_mutex_unlock(&ba_system_mutex);
 		slurm_mutex_unlock(&block_state_mutex);
+		unlock_slurmctld(job_read_lock);
 		return;
 	}
 
@@ -1402,6 +1403,7 @@ extern int bridge_status_fini(void)
 	}
 
 	pthread_mutex_destroy(&rt_mutex);
+
 	delete(rt_client_ptr);
 #endif
 	return SLURM_SUCCESS;
-- 
GitLab