Ack code review only.
Thanks,
Praveen
On 30-May-16 9:13 AM, Minh Hon Chau wrote:
> osaf/libs/agents/saf/ntfa/ntfa_mds.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
>
> When running life cycle APIs from multiple handles in multiple threads, ntfd
> processes
> the previous NCSMDS_DOWN event from last finalize after processes following
> initialze.
> This will unexpectedly delete all clients which are running due to late
> processing
> NCSMDS_DOWN.
>
> The problem is seen by sometimes (1) there's a shortcoming NCSMDS_DOWN from
> last
> finialize coming after next initialize req message at mds callback. Also, (2)
> another
> problem in ntfd, which is sending NTFSV_NTFS_EVT_NTFA_DOWN with lower
> priority than
> NTFSV_NTFS_NTFSV_MSG. This various prioriy will also cause ntfd process
> NCSMDS_DOWN
> after next intialize even NCSMDS_DOWN coming before initialize req message at
> mds
> callback.
>
> At this stage, for the problem (1), it is not sure whether or not this is mds
> issue,
> since all APIs have been sent with high priority. This patch lowers send
> priority of
> initialize request msg, which gives a chance of all messages following last
> finalize
> response message coming to ntfd. For the problem (2), given that NCSMDOWN and
> intialize
> req message coming to ntfd in correct order at mds callback, now those events
> will be
> sent to ntfd's mailbox with the same priority (MDS_SEND_PRIORITY_MEDIUM =
> NCS_IPC_PRIORITY_NORMAL). The unexpected client deletion as described above
> should not
> be seen. After this patch, if this problem is seen again, it most likely from
> mds
> who does not ensure NCSMDS_DOWN and intialize req are respectively sent from
> Agent
> and received at NTFD in right timing order.
>
> diff --git a/osaf/libs/agents/saf/ntfa/ntfa_mds.c
> b/osaf/libs/agents/saf/ntfa/ntfa_mds.c
> --- a/osaf/libs/agents/saf/ntfa/ntfa_mds.c
> +++ b/osaf/libs/agents/saf/ntfa/ntfa_mds.c
> @@ -1177,7 +1177,16 @@ uint32_t ntfa_mds_msg_sync_send(ntfa_cb_
> mds_info.info.svc_send.i_msg = (NCSCONTEXT)i_msg;
> mds_info.info.svc_send.i_to_svc = NCSMDS_SVC_ID_NTFS;
> mds_info.info.svc_send.i_sendtype = MDS_SENDTYPE_SNDRSP;
> - mds_info.info.svc_send.i_priority = MDS_SEND_PRIORITY_HIGH; /*
> fixme? */
> +
> + /* Lower priority of initialize_req msg so that the other existing
> + * life cycle msg can be completed, for multiple handles usage.
> + */
> + if (i_msg->info.api_info.type == NTFSV_INITIALIZE_REQ) {
> + mds_info.info.svc_send.i_priority = MDS_SEND_PRIORITY_MEDIUM;
> + } else {
> + mds_info.info.svc_send.i_priority = MDS_SEND_PRIORITY_HIGH;
> /* fixme? */
> + }
> +
> /* fill the sub send rsp strcuture */
> mds_info.info.svc_send.info.sndrsp.i_time_to_wait = timeout; /*
> timeto wait in 10ms FIX!!! */
> mds_info.info.svc_send.info.sndrsp.i_to_dest = cb->ntfs_mds_dest;
>
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel