Hi Huu, ACK with a minor comment. You should update commit message as a template. https://sourceforge.net/p/opensaf/staging/ci/default/tree/tools/devel/review/commit.template
Best Regards, Thien -----Original Message----- From: Huu The Truong <huu.t.tru...@dektech.com.au> Sent: Tuesday, September 28, 2021 1:53 PM To: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au>; Minh Hon Chau <minh.c...@dektech.com.au>; Thien Minh Huynh <thien.m.hu...@dektech.com.au>; Surbhi Tripathi <surbhi.tripa...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net; Huu The Truong <huu.t.tru...@dektech.com.au> Subject: [PATCH 1/1] immd: failed to find candidate for new immnd coordinator [#3284] Some cases, standby SC cannot promote to be coordinator, since isOnController variable in immnd tree is not "true". In order to prevent that, in function immd_proc_elect_coord() does not need check isOnController condition, because in fact the immd knew which one in all SCs is became active SC by cb->node_id variable --- src/imm/immd/immd_proc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/imm/immd/immd_proc.c b/src/imm/immd/immd_proc.c index a56ce89eb..c59c666ef 100644 --- a/src/imm/immd/immd_proc.c +++ b/src/imm/immd/immd_proc.c @@ -344,12 +344,13 @@ bool immd_proc_elect_coord(IMMD_CB *cb, bool new_active) // 3) Coordinator on PL node if SC absence is allowed. while (immnd_info_node) { key = immnd_info_node->immnd_dest; - if ((immnd_info_node->isOnController) && - (immnd_info_node->epoch == cb->mRulingEpoch)) { - candidate_coord_node = immnd_info_node; + if (immnd_info_node->epoch == cb->mRulingEpoch) { if (immnd_info_node->immnd_key == cb->node_id) { /* Found a new candidate on active SC */ + candidate_coord_node = immnd_info_node; break; + } else if (immnd_info_node->isOnController) { + candidate_coord_node = immnd_info_node; } } @@ -360,6 +361,8 @@ bool immd_proc_elect_coord(IMMD_CB *cb, bool new_active) immnd_info_node = candidate_coord_node; if (immnd_info_node != NULL) { immnd_info_node->isCoord = true; + if (!immnd_info_node->isOnController) + immnd_info_node->isOnController = true; } else if (cb->mScAbsenceAllowed) { /* If SC absence is allowed and no SC based IMMND is available then elect an IMMND coord at a payload. -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel