- Description has changed:
Diff:
~~~~
--- old
+++ new
@@ -44,3 +44,4 @@
<139>1 2021-04-26T11:50:44.193876+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1010"] MDS_SND_RCV:No Route Found from svc_id = RDE(33), to svc_id
= RDE(33) on Adest = <0x0002060f, 151>
<139>1 2021-04-26T11:50:44.193881+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1011"] MDS_SND_RCV: Normal send Message sent Failed from svc_id =
RDE(33), to svc_id = RDE(33)
~~~
+Related ticket: [3258](https://sourceforge.net/p/opensaf/tickets/3258/)
~~~~
- **status**: assigned --> accepted
---
** [tickets:#3259] mds: Add a timeout while sending a MDS_SENDTYPE_SND
message**
**Status:** accepted
**Milestone:** 5.21.06
**Created:** Tue Apr 27, 2021 07:02 AM UTC by Hieu Hong Hoang
**Last Updated:** Tue Apr 27, 2021 07:02 AM UTC
**Owner:** Hieu Hong Hoang
**Attachments:**
- [mds.log](https://sourceforge.net/p/opensaf/tickets/3259/attachment/mds.log)
(16.3 MB; application/octet-stream)
When mds send a MDS_SENDTYPE_SND message, it will block the caller until it
found the route to destination service or the subscription timer expired. In
worst case, it could block up to 5 seconds which equal to the subscription time
(MDS_SUBSCRIPTION_TMR_VAL = 500).
Blocking for a long time usually happen when the destination service is already
down. In that situation, even if the caller received the service down event, it
couldn't do anything.
We should add timeout to sending a MDS_SENDTYPE_SND message. If exceed the
timeout, mds will return to the caller and leave the decision to the caller.
Following is the scenario when the mds send to a down destation service:
* SC-7 rded subscribes to the rde service:
~~~
<143>1 2021-04-26T11:50:39.12063+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="103"] >> mds_subtn_tbl_add
...
<143>1 2021-04-26T11:50:39.120687+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="107"]
MCM_DB:mds_subtn_tbl_add:TimerStart:SubTmr:Hdl=0xffc00001:SvcHdl=562945658454049:sbscr-svcid=RDE(33)
...
<143>1 2021-04-26T11:50:39.120697+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="108"] MDS:DB: sub_adest_details : <nodeid[0x2070f]:osafrded[151]>
...
<143>1 2021-04-26T11:50:39.120705+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="109"] << mds_subtn_tbl_add
~~~
* SC-7 mds receives the rde service up event from SC-6:
~~~
<142>1 2021-04-26T11:50:39.154507+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="588"] MCM:API: svc_up : svc_id = RDE(33) on DEST id = 65535 got UP
for svc_id = RDE(33) on Adest = <rem_node[0x2060f]:dest_pid[151]>,
rem_svc_pvt_ver=1, rem_svc_archword=10
~~~
* SC-7 mds receives the rde service down event from SC-6:
~~~
<142>1 2021-04-26T11:50:39.15602+02:00 SC-7 osafclmna 141 mds.log [meta
sequenceId="510"] MCM:API: Adest <0x0002060f, 151> down timer start
...
<142>1 2021-04-26T11:50:39.156074+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="725"] MCM:API: svc_down : svc_id = RDE(33) on DEST id = 65535 got
DOWN for svc_id = RDE(33) on Adest = , rem_svc_pvt_ver=1
~~~
* Right after that, it receives a sending request and block the caller
(currently timeout is zero which means no timeout):
~~~
<143>1 2021-04-26T11:50:39.156513+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="753"] >> mcm_pvt_normal_svc_snd
...
<142>1 2021-04-26T11:50:39.15657+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="767"] MDS_SND_RCV:Blocking send from svc_id = RDE(33), to svc_id =
RDE(33)
<142>1 2021-04-26T11:50:39.156591+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="768"] MDS_SND_RCV: Waiting for timeout
~~~
* After 5 seconds, the subscription timer expire and unblock sending:
~~~
<142>1 2021-04-26T11:50:44.193679+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="982"] MCM:API: subscription_tmr expired for svc_id = RDE(33)
Subscribed to svc_id = RDE(33)
~~~
* mds failed to send the message:
~~~
<139>1 2021-04-26T11:50:44.193866+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1008"] MDS_SND_RCV:No Route Found from svc_id = RDE(33), to svc_id
= RDE(33) on Adest = <nodeid[0x2070f]:osafrded[151]>
<143>1 2021-04-26T11:50:44.193873+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1009"] MDS_SND_RCV :L mds_mcm_process_disc_queue_checks
<139>1 2021-04-26T11:50:44.193876+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1010"] MDS_SND_RCV:No Route Found from svc_id = RDE(33), to svc_id
= RDE(33) on Adest = <0x0002060f, 151>
<139>1 2021-04-26T11:50:44.193881+02:00 SC-7 osafrded 151 mds.log [meta
sequenceId="1011"] MDS_SND_RCV: Normal send Message sent Failed from svc_id =
RDE(33), to svc_id = RDE(33)
~~~
Related ticket: [3258](https://sourceforge.net/p/opensaf/tickets/3258/)
---
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