commit 0878555710e2116e466b0d1b124eb2c21ae85d16
Author: Gary Lee <[email protected]>
Date: Tue Mar 26 12:59:35 2019 +1100
mbc: prevent infinite peer_up message loop [#3021]
If the active and standby SCs are split into network partitions, it is
possible a RED_UP never arrives even though we have already
received MBC PEER_UP. The service using MBC will then get stuck
in an infinite loop and probably fail health checks.
To cater for 'normal' race conditions between MDS topology and data
messages, allow only up to 255 loops. If this is exceeded, the msg
will be discarded.
---
** [tickets:#3021] mbc: infinite loop when processing peer_up msg**
**Status:** review
**Milestone:** 5.19.06
**Created:** Tue Mar 19, 2019 08:00 AM UTC by Gary Lee
**Last Updated:** Tue Mar 26, 2019 02:16 AM UTC
**Owner:** Gary Lee
Sometimes, a process (eg amfd) utilising MBC will become unresponsive because
it is stuck in an infinite loop processing PEER_UP msg. This instance was
noticed when SC-1 and SC-2 were deliberately split into network partitions. It
seems SC-1 receives PEER_UP from SC-2, and hadn't received RED_UP.
This bit of code in mbcsv_peer.c looks problematic, if it's called from
mbcsv_hdl_dispatch_all.
~~~
/* Again post the event, till RED_UP event arrives */
if (NCSCC_RC_SUCCESS !=
m_MBCSV_SND_MSG(&mbx, evt, NCS_IPC_PRIORITY_HIGH)) {
TRACE_LEAVE2("ipc send failed");
m_NCS_UNLOCK(&mbcsv_cb.peer_list_lock,
NCS_LOCK_WRITE);
return NCSCC_RC_FAILURE;
}
~~~
~~~
<143>1 2019-03-15T10:11:27.525305+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188866"] 18495:mbc/mbcsv_peer.c:360 >>
mbcsv_process_peer_discovery_message
<143>1 2019-03-15T10:11:27.52531+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188867"] 18495:mbc/mbcsv_peer.c:369 TR peer version: 9
<143>1 2019-03-15T10:11:27.525315+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188868"] 18495:mbc/mbcsv_peer.c:765 >> mbcsv_process_peer_up_info
<143>1 2019-03-15T10:11:27.525321+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188869"] 18495:mbc/mbcsv_peer.c:828 T4 Still RED_UP event not
arrived of the peer
<143>1 2019-03-15T10:11:27.525327+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188870"] 18495:mbc/mbcsv_peer.c:407 T1 Peer UP msg, My role: 1,
My svc_id: 10, pwe handle:65537, peer role:2, peer_anchor: 565215027999180
<143>1 2019-03-15T10:11:27.525333+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188871"] 18495:mbc/mbcsv_peer.c:414 <<
mbcsv_process_peer_discovery_message
<143>1 2019-03-15T10:11:27.525338+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188872"] 18495:mbc/mbcsv_pr_evts.c:220 << mbcsv_process_events
<143>1 2019-03-15T10:11:27.525346+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188873"] 18495:mbc/mbcsv_pr_evts.c:66 >> mbcsv_process_events:
mbcsv hdl: 4293918753
<143>1 2019-03-15T10:11:27.525351+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188874"] 18495:mbc/mbcsv_pr_evts.c:177 TR peer discovery event
<143>1 2019-03-15T10:11:27.525356+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188875"] 18495:mbc/mbcsv_peer.c:360 >>
mbcsv_process_peer_discovery_message
<143>1 2019-03-15T10:11:27.525361+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188876"] 18495:mbc/mbcsv_peer.c:369 TR peer version: 9
<143>1 2019-03-15T10:11:27.525366+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188877"] 18495:mbc/mbcsv_peer.c:765 >> mbcsv_process_peer_up_info
<143>1 2019-03-15T10:11:27.525372+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188878"] 18495:mbc/mbcsv_peer.c:828 T4 Still RED_UP event not
arrived of the peer
<143>1 2019-03-15T10:11:27.525378+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188879"] 18495:mbc/mbcsv_peer.c:407 T1 Peer UP msg, My role: 1,
My svc_id: 10, pwe handle:65537, peer role:2, peer_anchor: 565215027999180
<143>1 2019-03-15T10:11:27.525384+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188880"] 18495:mbc/mbcsv_peer.c:414 <<
mbcsv_process_peer_discovery_message
<143>1 2019-03-15T10:11:27.525389+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188881"] 18495:mbc/mbcsv_pr_evts.c:220 << mbcsv_process_events
<143>1 2019-03-15T10:11:27.525398+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188882"] 18495:mbc/mbcsv_pr_evts.c:66 >> mbcsv_process_events:
mbcsv hdl: 4293918753
<143>1 2019-03-15T10:11:27.525403+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188883"] 18495:mbc/mbcsv_pr_evts.c:177 TR peer discovery event
<143>1 2019-03-15T10:11:27.525408+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188884"] 18495:mbc/mbcsv_peer.c:360 >>
mbcsv_process_peer_discovery_message
<143>1 2019-03-15T10:11:27.525413+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188885"] 18495:mbc/mbcsv_peer.c:369 TR peer version: 9
<143>1 2019-03-15T10:11:27.525418+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188886"] 18495:mbc/mbcsv_peer.c:765 >> mbcsv_process_peer_up_info
<143>1 2019-03-15T10:11:27.525423+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188887"] 18495:mbc/mbcsv_peer.c:828 T4 Still RED_UP event not
arrived of the peer
<143>1 2019-03-15T10:11:27.52543+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188888"] 18495:mbc/mbcsv_peer.c:407 T1 Peer UP msg, My role: 1,
My svc_id: 10, pwe handle:65537, peer role:2, peer_anchor: 565215027999180
<143>1 2019-03-15T10:11:27.525436+01:00 SC-2-1 osafamfd 18495 osafamfd [meta
sequenceId="17188889"] 18495:mbc/mbcsv_peer.c:414 <<
mbcsv_process_peer_discovery_message
~~~
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/opensaf/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/opensaf/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list._______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets