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
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to