Branch: refs/heads/3.2 Home: https://github.com/OpenSIPS/opensips Commit: f938704213276a89be815d1871308ee7a8ace275 https://github.com/OpenSIPS/opensips/commit/f938704213276a89be815d1871308ee7a8ace275 Author: Liviu Chircu <li...@opensips.org> Date: 2024-01-11 (Thu, 11 Jan 2024)
Changed paths: M rw_locking.h Log Message: ----------- RW locking: Add a pair of re-entrant functions for readers In some cases, the same lock_start_read() function could be reached multiple times in a nested fashion, e.g. after running a callback which returns the control flow to the same module through an API call done by the module which installed the callback. Commit: f876dc97aebb89344bf52e7b12f810dfd99dfca6 https://github.com/OpenSIPS/opensips/commit/f876dc97aebb89344bf52e7b12f810dfd99dfca6 Author: Liviu Chircu <li...@opensips.org> Date: 2024-01-11 (Thu, 11 Jan 2024) Changed paths: M modules/clusterer/clusterer.c M modules/clusterer/node_info.c M modules/clusterer/node_info.h Log Message: ----------- clusterer: Fix occasional deadlock during dlg/ul sync ops This patch fixes a possible deadlock when running the MI `dlg_cluster_sync` or `ul_cluster_sync` functions, due to re-entrant lock_start_read(). Deadlock example: usleep() clusterer_bcast_msg() cl_send_all() <--------------- 3. lock_start_read() ^^^ clusterer (cannot re-acquire same lock due to writer...) dlg_replicate_profiles() repl_prof_remove() destroy_linker() remove_dlg_prof_table() rcv_cluster_event() ^^^ dialog handle_sync_end() handle_sync_packet() bin_rcv_cl_extra_packets() <--------------- 1. lock_start_read() ^^^ clusterer usleep() bin_rcv_cl_packets() <--------------- 2. lock_start_write() Commit: a2da62740c6b68dbc21ac41607449cef302713a9 https://github.com/OpenSIPS/opensips/commit/a2da62740c6b68dbc21ac41607449cef302713a9 Author: Liviu Chircu <li...@opensips.org> Date: 2024-01-11 (Thu, 11 Jan 2024) Changed paths: M modules/clusterer/clusterer.c M modules/clusterer/sync.c Log Message: ----------- clusterer: Fix missing/extra lock ops on some error-cases Compare: https://github.com/OpenSIPS/opensips/compare/c0ac7cf29a71...a2da62740c6b _______________________________________________ Devel mailing list Devel@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/devel