Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    63d90c38
    app.c: Remove deletion of pool topic on mwi state delete · 63d90c38
    George Joseph authored
    As part of an earlier voicemail refactor, ast_delete_mwi_state_full
    was modified to remove the pool topic for a mailbox when the state
    was deleted.  This was an attempt to prevent stale topics from
    accumulating when app_voicemail was reloaded and a mailbox went
    away.  Unfortunately because of the fact that when app_voicemail
    reloads, ALL mailboxes are deleted then only current ones recreated,
    topics were being removed from the pool that still had subscribers
    on them, then recreated as new topics of the same name.  So now
    modules like res_pjsip_mwi are listening on a topic that will
    never receive any messages because app_voicemail is publishing on
    a different topic that happens to have the same name.  The solutiuon
    to this is not easy and given that accumulating topics for
    deleted mailboxes is less evil that not sending NOTIFYs...
    
    * Removed the call to stasis_topic_pool_delete_topic in
      ast_delete_mwi_state_full.
    
    Also:
    
    * Fixed a topic reference leak in res_pjsip_mwi
      mwi_stasis_subscription_alloc.
    
    * Added some debugging to mwi_stasis_subscription_alloc,
      stasis_topic_create, and topic_dtor.
    
    * Fixed a topic reference leak in an error path in
      internal_stasis_subscribe.
    
    ASTERISK-28306
    Reported-by: Jared Hull
    
    Change-Id: Id7da0990b3ac4be4b58491536b35f41291247b27
    63d90c38
    History
    app.c: Remove deletion of pool topic on mwi state delete
    George Joseph authored
    As part of an earlier voicemail refactor, ast_delete_mwi_state_full
    was modified to remove the pool topic for a mailbox when the state
    was deleted.  This was an attempt to prevent stale topics from
    accumulating when app_voicemail was reloaded and a mailbox went
    away.  Unfortunately because of the fact that when app_voicemail
    reloads, ALL mailboxes are deleted then only current ones recreated,
    topics were being removed from the pool that still had subscribers
    on them, then recreated as new topics of the same name.  So now
    modules like res_pjsip_mwi are listening on a topic that will
    never receive any messages because app_voicemail is publishing on
    a different topic that happens to have the same name.  The solutiuon
    to this is not easy and given that accumulating topics for
    deleted mailboxes is less evil that not sending NOTIFYs...
    
    * Removed the call to stasis_topic_pool_delete_topic in
      ast_delete_mwi_state_full.
    
    Also:
    
    * Fixed a topic reference leak in res_pjsip_mwi
      mwi_stasis_subscription_alloc.
    
    * Added some debugging to mwi_stasis_subscription_alloc,
      stasis_topic_create, and topic_dtor.
    
    * Fixed a topic reference leak in an error path in
      internal_stasis_subscribe.
    
    ASTERISK-28306
    Reported-by: Jared Hull
    
    Change-Id: Id7da0990b3ac4be4b58491536b35f41291247b27
app.c 85.51 KiB