Ack from me

On 19/4/21 5:59 pm, thang.d.nguyen wrote:
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;
            }


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

Reply via email to