From 2000653804ed54e6747a19ef32f2cd9d0e1f5fde Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Wed, 15 Feb 2023 18:02:22 +0100 Subject: [PATCH] MT#56097 dialog: deactivate print_list Change-Id: Id3b5c73f016fa78cff1aa72dce6e1ce71619fb3b (cherry picked from commit 7b8dafd0e3a4ea44ba8253f950bd2afd7d3e5851) (cherry picked from commit ddd257deb1c9730b0eb87ed94481c6f9c44cec45) (cherry picked from commit 576f27d503dc81ac7a24cb75e728bef6ecd45d6f) (cherry picked from commit b5a4d0861cb4ebf6686b42c75a9ca8aefd019940) --- debian/patches/series | 1 + ...e-print-variable-function-which-is-o.patch | 85 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 debian/patches/upstream/dialog-deactivate-print-variable-function-which-is-o.patch diff --git a/debian/patches/series b/debian/patches/series index b5bab2662..40b1c36dd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -42,6 +42,7 @@ upstream/permissions-trusted_cleanup_interval.patch upstream/topos_use_direction_for_loading_invite_record_for_other_early_dialog_requests.patch upstream/topos_restore_attributes_based_on_direction_for_early_dialog_requests.patch upstream/topos_redis_use_tag_based_on_direction_for_early_dialog_transaction_record_loading.patch +upstream/dialog-deactivate-print-variable-function-which-is-o.patch ### relevant for upstream sipwise/pua_dialoginfo-refresh_pubruri_avps_flag.patch sipwise/pua_dialoginfo-local_identity_dlg_var.patch diff --git a/debian/patches/upstream/dialog-deactivate-print-variable-function-which-is-o.patch b/debian/patches/upstream/dialog-deactivate-print-variable-function-which-is-o.patch new file mode 100644 index 000000000..e38159d3b --- /dev/null +++ b/debian/patches/upstream/dialog-deactivate-print-variable-function-which-is-o.patch @@ -0,0 +1,85 @@ +From: Henning Westerholt +Date: Wed, 16 Nov 2022 15:33:06 +0000 +Subject: dialog: deactivate print variable function which is only used for + debugging + +- deactivate print variable function which is only used for debugging +- this function is not good for performance and might also cause race + conditions +--- + src/modules/dialog/dialog.c | 3 +++ + src/modules/dialog/dlg_var.c | 12 +++++++++--- + src/modules/dialog/dlg_var.h | 2 ++ + 3 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/src/modules/dialog/dialog.c b/src/modules/dialog/dialog.c +index 243bb9b..9823877 100644 +--- a/src/modules/dialog/dialog.c ++++ b/src/modules/dialog/dialog.c +@@ -140,6 +140,8 @@ stat_var *expired_dlgs = 0; + stat_var *failed_dlgs = 0; + stat_var *early_dlgs = 0; + ++int debug_variables_list = 0; ++ + struct tm_binds d_tmb; + struct rr_binds d_rrb; + pv_spec_t timeout_avp; +@@ -327,6 +329,7 @@ static param_export_t mod_params[]={ + { "h_id_start", PARAM_INT, &dlg_h_id_start }, + { "h_id_step", PARAM_INT, &dlg_h_id_step }, + { "keep_proxy_rr", INT_PARAM, &dlg_keep_proxy_rr }, ++ { "debug_variables", PARAM_INT, &debug_variables_list }, + { 0,0,0 } + }; + +diff --git a/src/modules/dialog/dlg_var.c b/src/modules/dialog/dlg_var.c +index b2a373a..311b3c0 100644 +--- a/src/modules/dialog/dlg_var.c ++++ b/src/modules/dialog/dlg_var.c +@@ -317,7 +317,9 @@ int set_dlg_variable(struct dlg_cell *dlg, str *key, str *val) + if ( dlg_db_mode==DB_MODE_REALTIME ) + update_dialog_dbinfo(dlg); + +- print_lists(dlg); ++ if(unlikely(debug_variables_list)) { ++ print_lists(dlg); ++ } + + return 0; + +@@ -366,7 +368,9 @@ int pv_get_dlg_variable(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) + } + } + +- print_lists(dlg); ++ if(unlikely(debug_variables_list)) { ++ print_lists(dlg); ++ } + + /* unlock dialog */ + if (dlg) { +@@ -440,7 +444,9 @@ int pv_set_dlg_variable(struct sip_msg* msg, pv_param_t *param, int op, pv_value + } + dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); + } +- print_lists(dlg); ++ if(unlikely(debug_variables_list)) { ++ print_lists(dlg); ++ } + + dlg_release(dlg); + return 0; +diff --git a/src/modules/dialog/dlg_var.h b/src/modules/dialog/dlg_var.h +index f13fa45..dc7698d 100644 +--- a/src/modules/dialog/dlg_var.h ++++ b/src/modules/dialog/dlg_var.h +@@ -83,6 +83,8 @@ extern stat_var *processed_dlgs; /*!< number of processed dialogs */ + extern stat_var *expired_dlgs; /*!< number of expired dialogs */ + extern stat_var *failed_dlgs; /*!< number of failed dialogs */ + ++extern int debug_variables_list; ++ + int pv_get_dlg_ctx(sip_msg_t *msg, pv_param_t *param, + pv_value_t *res); + int pv_set_dlg_ctx(sip_msg_t *msg, pv_param_t *param,