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

Reply via email to