commit 6d3a4472c7e096af046305088d17dde7107f7fba (HEAD -> develop, 
origin/develop, ticket-3319)
Author: hieu.h.hoang <[email protected]>
Date:   Tue Jul 19 11:00:48 2022 +0700

    ntf: Process the asynchronous checkpoint after sending response [#3319]
    
    When ntfd receives an asynchronous checkpoint from its peer,
    it decodes and process the checkpoint before sending response
    to peer. If processing checkpoint take a long time, it will
    hang the active ntf. Solution is to push the checkpoint into
    a queue then process it later.


---

** [tickets:#3319] ntf: Process the asynchronous checkpoint before sending 
response**

**Status:** review
**Milestone:** 5.22.11
**Created:** Fri Jul 15, 2022 04:20 AM UTC by Hieu Hong Hoang
**Last Updated:** Wed Jul 20, 2022 06:54 AM UTC
**Owner:** Hieu Hong Hoang
**Attachments:**

- 
[osafntfd](https://sourceforge.net/p/opensaf/tickets/3319/attachment/osafntfd) 
(504.7 kB; application/octet-stream)


When ntfd receives an asynchronous checkpoint from its peer, it decodes and 
process the checkpoint before sending the response to peer. That means peer 
must wait for processing the checkpoint so it is a synchronous checkpoint 
rather than an asynchronous checkpoint. We should not process the asynchronous 
checkpoint inside the decode function.

Log analysis:
- ntfd receives a asynchronous checkpoint:
~~~
<143>1 2022-07-15T10:40:45.939514+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="769"] 216:mbc/mbcsv_act.c:451 >> ncs_mbcsv_rcv_async_update: async 
update received. myrole: 2, svc_id: 44, pwe_hdl: 65550
~~~
- ntfd decodes the checkpoint:
~~~
<143>1 2022-07-15T10:40:45.939517+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="770"] 216:mbc/mbcsv_act.c:383 >> ncs_mbscv_rcv_decode 
<143>1 2022-07-15T10:40:45.939521+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="771"] 216:ntf/ntfd/ntfs_mbcsv.c:755 T2 decode msg type: 1
<143>1 2022-07-15T10:40:45.939524+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="772"] 216:ntf/ntfd/ntfs_mbcsv.c:780 T2  ASYNC UPDATE DECODE called
<143>1 2022-07-15T10:40:45.939527+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="773"] 216:ntf/ntfd/ntfs_mbcsv.c:843 >> ckpt_decode_async_update 
<143>1 2022-07-15T10:40:45.939545+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="774"] 216:ntf/ntfd/ntfs_mbcsv.c:860 T2 ckpt_rec_type: 4 
<143>1 2022-07-15T10:40:45.939549+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="775"] 216:ntf/ntfd/ntfs_mbcsv.c:871 T2 NOTIFICATION: AUPDATE
<143>1 2022-07-15T10:40:45.939552+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="776"] 216:ntf/common/ntfsv_enc_dec.c:977 >> ntfsv_dec_not_msg 
<143>1 2022-07-15T10:40:45.939557+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="777"] 216:ntf/common/ntfsv_enc_dec.c:1149 TR dec 
SA_NTF_TYPE_STATE_CHANGE
<143>1 2022-07-15T10:40:45.93956+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="778"] 216:ntf/common/ntfsv_enc_dec.c:910 >> ntfsv_dec_not_header 
<143>1 2022-07-15T10:40:45.939565+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="779"] 216:ntf/common/ntfsv_mem.c:141 >> ntfsv_alloc_ntf_header 
<143>1 2022-07-15T10:40:45.939572+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="780"] 216:ntf/common/ntfsv_mem.c:257 << ntfsv_alloc_ntf_header 
<143>1 2022-07-15T10:40:45.939579+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="781"] 216:ntf/common/ntfsv_enc_dec.c:967 << ntfsv_dec_not_header 
<143>1 2022-07-15T10:40:45.939583+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="782"] 216:ntf/common/ntfsv_enc_dec.c:1161 TR dec numStCh: 1
<143>1 2022-07-15T10:40:45.939587+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="783"] 216:ntf/common/ntfsv_enc_dec.c:1238 << ntfsv_dec_not_msg 
~~~
- ntfd process the checkpoint then finish decoding checkpoint:
~~~
<143>1 2022-07-15T10:40:45.93959+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="784"] 216:ntf/ntfd/ntfs_mbcsv.c:1420 >> ckpt_proc_notification 
...
<143>1 2022-07-15T10:40:45.939728+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="829"] 216:ntf/ntfd/ntfs_mbcsv.c:1424 << ckpt_proc_notification 
<143>1 2022-07-15T10:40:45.939731+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="830"] 216:ntf/ntfd/ntfs_mbcsv.c:976 << ckpt_decode_async_update 
<143>1 2022-07-15T10:40:45.939734+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="831"] 216:mbc/mbcsv_act.c:429 << ncs_mbscv_rcv_decode 
~~~
- ntfd send the response to peer:
~~~
<143>1 2022-07-15T10:40:45.939737+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="832"] 216:mbc/mbcsv_util.c:1006 >> mbcsv_send_msg: event type: 12
<143>1 2022-07-15T10:40:45.93974+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="833"] 216:mbc/mbcsv_util.c:1036 TR NCS_MBCSV_MSG_SYNC_SEND_RSP event
<143>1 2022-07-15T10:40:45.939743+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="834"] 216:mbc/mbcsv_mds.c:198 >> mbcsv_mds_send_msg: sending to 
vdest:e
<143>1 2022-07-15T10:40:45.939746+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="835"] 216:mbc/mbcsv_mds.c:227 TR send type MDS_SENDTYPE_RRSP:
<143>1 2022-07-15T10:40:45.942827+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="836"] 219:mds/mds_dt_trans.c:755 >> mdtm_process_poll_recv_data_tcp 
<143>1 2022-07-15T10:40:45.942866+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="837"] 216:mbc/mbcsv_mds.c:253 << mbcsv_mds_send_msg: success
<143>1 2022-07-15T10:40:45.942879+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="838"] 216:mbc/mbcsv_util.c:1088 << mbcsv_send_msg 
<143>1 2022-07-15T10:40:45.942889+07:00 SC-5 osafntfd 216 osafntfd [meta 
sequenceId="839"] 216:mbc/mbcsv_act.c:472 << ncs_mbcsv_rcv_async_update 
~~~


---

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

Reply via email to