During scale-out, node is stopped, 4 events received in order below. - avd_mds_avnd_up_evh (amfnd up) then clm_track_cb(node join). At this time node state is still in absent but node member is set to true. Node member is set in clm_track_cb. - avd_mds_avnd_down_evh (amfnd down) then clm_track_cb(node left). The node member is not set to false. So the scale-in failed.
Node member should be set to false in clm_track_cb if amfd receives node left but node state still in absent. --- src/amf/amfd/clm.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/amf/amfd/clm.cc b/src/amf/amfd/clm.cc index f8a931aba..074783751 100644 --- a/src/amf/amfd/clm.cc +++ b/src/amf/amfd/clm.cc @@ -325,6 +325,9 @@ static void clm_track_cb( if (avd_cb->failover_list.count(node->node_info.nodeId) == 0 && delay_failover(avd_cb, node->node_info.nodeId) == false) { avd_node_delete_nodeid(node); + node->node_info.member = SA_FALSE; + m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, + AVSV_CKPT_AVD_NODE_CONFIG); } goto done; } -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel