CSICOMP_STATE_INFO_MSG event msg will be pushed
into the queue to processed later. But at the time
processing the node has already left. In this case
the creation comp-csi record must be ignored to avoid
amfd crashed.
---
 src/amf/amfd/csi.cc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/amf/amfd/csi.cc b/src/amf/amfd/csi.cc
index f16f0aa1b..66e3017d9 100644
--- a/src/amf/amfd/csi.cc
+++ b/src/amf/amfd/csi.cc
@@ -1564,6 +1564,12 @@ SaAisErrorT 
avd_compcsi_recreate(AVSV_N2D_ND_CSICOMP_STATE_MSG_INFO *info) {
 
   TRACE_ENTER();
 
+  AVD_AVND *node = avd_node_find_nodeid(info->node_id);
+  if (node == 0) {
+    LOG_ER("Node %" PRIx32 " has left the cluster", info->node_id);
+    return SA_AIS_ERR_NOT_EXIST;
+  }
+
   for (csicomp = info->csicomp_list; csicomp != nullptr;
        csicomp = csicomp->next) {
     csi = csi_db->find(Amf::to_string(&csicomp->safCSI));
-- 
2.25.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to