[asterisk-bugs] [JIRA] (ASTERISK-29904) RLS: Batched Notifications stop working

Friendly Automation (JIRA) noreply at issues.asterisk.org
Wed Feb 23 16:10:07 CST 2022


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=258169#comment-258169 ] 

Friendly Automation commented on ASTERISK-29904:
------------------------------------------------

Change 17996 merged by Friendly Automation:
res_pjsip_pubsub: fix Batched Notifications stop working

[https://gerrit.asterisk.org/c/asterisk/+/17996|https://gerrit.asterisk.org/c/asterisk/+/17996]

> RLS: Batched Notifications stop working
> ---------------------------------------
>
>                 Key: ASTERISK-29904
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29904
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip_pubsub
>    Affects Versions: 16.23.0, 18.9.0, 19.1.0
>            Reporter: Alexei Gradinari
>            Assignee: Alexei Gradinari
>
> If Subscription refresh occurred between when the batched notification was scheduled and the serialized notification was to be sent, then new schedule notification task would never be added.
> There are 2 threads:
> thread #1. ast_sip_subscription_notify is called,
> if notification_batch_interval then call schedule_notification.
> 1.1. The schedule_notification checks notify_sched_id > -1
> not true, then 
> send_scheduled_notify = 1
> notify_sched_id = ast_sched_add(sched, sub_tree->notification_batch_interval, sched_cb....
> 1.2. The sched_cb pushes task serialized_send_notify to serializer
> and returns 0 which means no reschedule.
> 1.3. The serialized_send_notify checks send_scheduled_notify if it's false
> the just returns. BUT notify_sched_id is still set, so no more ast_sched_add.
> thread #2. pubsub_on_rx_refresh is called
> 2.1 it pushes serialized_pubsub_on_refresh_timeout to serializer
> 2.2. The serialized_pubsub_on_refresh_timeout calls pubsub_on_refresh_timeout which calls send_notify
> 2.3. The send_notify set send_scheduled_notify = 0;
> The serialized_send_notify should always unset notify_sched_id.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list