msgd can crash if multiple nodes in the cluster are rebooted at the same time.

"is_node_down" and "is_clm_down" can both be set to true, if the CLM tracking
callback comes in quickly. If this occurs during middleware failover, the
cleanup code in msgd can cause a crash because it tries to delete the same
node twice.

Don't delete the same node twice.
---
 src/msg/msgd/mqd_saf.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/msg/msgd/mqd_saf.c b/src/msg/msgd/mqd_saf.c
index 10ac817..28a8338 100644
--- a/src/msg/msgd/mqd_saf.c
+++ b/src/msg/msgd/mqd_saf.c
@@ -268,12 +268,12 @@ void mqd_saf_csi_set_cb(SaInvocationT invocation, const 
SaNameT *compName,
                                                }
                                        }
                                }
-                               if (pNdNode->info.is_node_down == true) {
+
+                               if (pNdNode->info.is_node_down == true)
                                        mqd_tmr_stop(&pNdNode->info.timer);
-                                       mqd_del_node_down_info(pMqd, nodeid);
-                                       mqd_red_db_node_del(pMqd, pNdNode);
-                               }
-                               if (pNdNode->info.is_clm_down == true) {
+
+                               if (pNdNode->info.is_clm_down ||
+                                               pNdNode->info.is_node_down) {
                                        mqd_red_db_node_del(pMqd, pNdNode);
                                        mqd_del_node_down_info(pMqd, nodeid);
                                }
-- 
2.9.5


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to