[OpenSIPS-Devel] [OpenSIPS/opensips] ba4c25: dialog: fix deadlock when freeing a cell on timer

Razvan Crainea razvan at opensips.org
Fri Sep 14 09:43:13 EDT 2018


  Branch: refs/heads/2.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: ba4c2537a5876f99ca360c589e82f851433065fa
      https://github.com/OpenSIPS/opensips/commit/ba4c2537a5876f99ca360c589e82f851433065fa
  Author: Razvan Crainea <razvan at opensips.org>
  Date:   2018-09-14 (Fri, 14 Sep 2018)

  Changed paths:
    M modules/dialog/dlg_db_handler.c

  Log Message:
  -----------
  dialog: fix deadlock when freeing a cell on timer

When freeing a dialog on timer, sequential destroy callbacks might try
to fetch the dialog lock, resulting in a deadlock. The spotted backtrace
is dialog_update_db -> destroy_dlg -> free_dlg_dlg ->
destroy_dlg_callbacks_list -> unref_acc_ctx -> free_acc_ctx ->
store_dlg_value

Thanks go to Jonathan Hulme for spotting this and offering testing

(cherry picked from commit 6fcbcc816b6d8224ed97f14cec74181c0fe6423f)



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the Devel mailing list