Hi Minh,

I am trying to understand the problem.

As per these ntfd traces, in the down event at below at 3) ntfd clears 
the client data so subsequent requests for Unsubscribe() and Finalize() 
for same client will surely fail with reported error.
One question : Why the down event at 3) below is coming before the 
unsubscribe() and Finalize() requests keeping in mind that both 
Unsubscribe() and Finalize() are sync calls.


I have run suite 2 and got the same error. But that error comes when 
ntfd gets Unsubscribe() request after Finalize() request.In that 
situation this is an acceptable error.

Messages from NTFD traces:

1)Client came up at:
  Mar 10 14:53:01.402362 osafntfd [463:ntfs_mds.c:0078] T8 
NTFSV_INITIALIZE_REQ
Mar 10 14:53:01.402493 osafntfd [463:ntfs_evt.c:0263] >> 
proc_initialize_msg: dest 2010f00000331
Mar 10 14:53:01.402515 osafntfd [463:NtfClient.cc:0043] T3 
NtfClient::NtfClient NtfClient 28 created mdest: 564113889559345

2)Its subscription request comes at :
Mar 10 14:53:01.403921 osafntfd [463:ntfs_evt.c:0315] >> proc_subscribe_msg
Mar 10 14:53:01.403929 osafntfd [463:ntfs_evt.c:0318] T4 subscriptionId: 111
Mar 10 14:53:01.403992 osafntfd [463:NtfSubscription.cc:0045] T2 
Subscription 111 created for client_id 28

3) Then came the down event for the same client at (2 times):
Mar 10 14:53:01.405487 osafntfd [463:ntfs_evt.c:0101] >> 
proc_ntfa_updn_mds_msg
Mar 10 14:53:01.405495 osafntfd [463:NtfAdmin.cc:0504] >> 
clientRemoveMDS: REMOVE mdsDest: 564113889559345
Mar 10 14:53:01.405583 osafntfd [463:ntfs_evt.c:0101] >> 
proc_ntfa_updn_mds_msg
Mar 10 14:53:01.405591 osafntfd [463:NtfAdmin.cc:0504] >> 
clientRemoveMDS: REMOVE mdsDest: 564113889559345
Mar 10 14:53:01.405598 osafntfd [463:NtfAdmin.cc:0521] << clientRemoveMDS

4)After this reported error got in syslog during Unsubscribe() and 
Finalize() requests as the clinet was removed already:
Mar 10 14:53:01.405862 osafntfd [463:ntfs_mds.c:0105] T8 NTFSV_FINALIZE_REQ
Mar 10 14:53:01.405875 osafntfd [463:ntfs_evt.c:0338] >> 
proc_unsubscribe_msg: client_id 28, subscriptionId 111
Mar 10 14:53:01.406044 osafntfd [463:NtfAdmin.cc:0553] ER 
NtfAdmin::subscriptionRemoved client 28 not found
Mar 10 14:53:01.406061 osafntfd [463:ntfs_evt.c:0341] << 
proc_unsubscribe_msg
Mar 10 14:53:01.406079 osafntfd [463:ntfs_evt.c:0291] >> 
proc_finalize_msg: client_id 28
Mar 10 14:53:01.406088 osafntfd [463:NtfAdmin.cc:0480] T2 
NtfAdmin::clientRemoved client 28 not found
Mar 10 14:53:01.406095 osafntfd [463:ntfs_com.c:0074] >> 
client_removed_res_lib: clientId: 28, rv: 1


Thanks,
Praveen




On 11-May-16 7:36 PM, Minh Hon Chau wrote:
>  osaf/libs/agents/saf/ntfa/ntfa_mds.c |  9 ++++++++-
>  1 files changed, 8 insertions(+), 1 deletions(-)
>
>
> When running ntftest suite, there's an issue that the messages of previous 
> test
> coming after some of messages of current test. This issue can also happen in
> real application.
>
> The patch lowers mds priority of initialize msg so that the other messages 
> have
> a chance to reach ntf server earlier. This is not a complete solution, since
> there could be a race condition between the other messages not just only with
> initialize messages. If it happens, priority of those messages can be 
> considered
> in which race condition happens.
>
> 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,14 @@ 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? */
> +     /* initialize_msg is lower priority than the others so that
> +      * life cycle of agent will be pritorized to complete
> +      */
> +     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;
>

------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to