Hi Hans, See my response inline.
Regards, Vu > -----Original Message----- > From: Hans Nordebäck [mailto:hans.nordeb...@ericsson.com] > Sent: Tuesday, March 13, 2018 9:10 PM > To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>; > ravisekhar.ko...@oracle.com; zoran.milinko...@ericsson.com; > anders.wid...@ericsson.com; lennart.l...@ericsson.com > Cc: opensaf-devel@lists.sourceforge.net > Subject: Re: [PATCH 1/1] imm: coredump during scale-in on large > configuration [#2794] > > ack, review only. One question below. > > /Thanks HansN > > > On 03/12/2018 08:12 AM, Vu Minh Nguyen wrote: > > When IMMND restarts (e.g: OUT OF ORDER detection), it may get message > > from active IMMD which is originated from just-dead IMMND process. > > In such case, we are in confused situation - messages come from > > local IMMND, but not me (reply_dest != cb->immnd_mdest_id)! > > > > This patch discards such messages, notify the case to syslog > > instead of aborting the IMMND progress. > > --- > > src/imm/immnd/immnd_evt.c | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/src/imm/immnd/immnd_evt.c b/src/imm/immnd/immnd_evt.c > > index 228b7dd..43611a3 100644 > > --- a/src/imm/immnd/immnd_evt.c > > +++ b/src/imm/immnd/immnd_evt.c > > @@ -10766,6 +10766,18 @@ static uint32_t > immnd_evt_proc_fevs_rcv(IMMND_CB *cb, IMMND_EVT *evt, > > (m_IMMSV_UNPACK_HANDLE_LOW(clnt_hdl) == cb->node_id); > > > > if (originatedAtThisNd) { > > + /* Get the message comes from local IMMND but not me > > + (cb->immnd_mdest_id). Probably IMMND just restarts > > + (e.g: OUT OF ORDER detection), and this message belongs > > + to previous (dead) IMMND. So, discard this message. > > + */ > > + if (reply_dest && reply_dest != cb->immnd_mdest_id) { > > + LOG_WA("DISCARD FEVS message sent by previous dead > IMMND"); > > + dequeue_outgoing(cb); > > + TRACE_LEAVE(); > > + return NCSCC_RC_SUCCESS; > > + } > > + > > osafassert(!reply_dest || (reply_dest == cb->immnd_mdest_id) > || > [HansN] in osafassert, isn't > > ... ||(reply_dest == cb->immnd_mdest_id) || > > redundant as > > if (reply_dest && reply_dest != cb->immnd_mdest_id) > > is checked before? [Vu] The check should be there, otherwise assertion could get failed when reply_dest != 0 and isObjSync is FALSE. > > isObjSync); > > if (cb->fevs_replies_pending) { ------------------------------------------------------------------------------ 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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel