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