Hi,
We currently have OpenSIPS crashes that look to be caused by
synchronization issues between the TM and DIALOG modules.
We started to get these crashes after setting the following modparam:
modparam("tm", "own_timer_proc", 2)
Note that we don't set the own_timer_proc parameter for the DIALOG module,
therefore it uses the global timer process.
Do you have an idea what may cause the issue?
The backtrace extracted from the core file:
#0 0x00002b69aa157a28 in next_state_dlg (dlg=0x2b69b1271408, event=1,
dir=2, old_state=0x7fff7e830358, new_state=0x7fff7e83035c,
unref=0x7fff7e830354, is_replicated=0 '\0') at dlg_hash.c:777
#1 0x00002b69aa14aafc in dlg_onreply (t=0x0, type=<value optimized out>,
param=<value optimized out>) at dlg_handlers.c:457
#2 0x00002b69aa14bc67 in unreference_dialog_create (dialog=0x2b69b1271408)
at dlg_handlers.c:744
#3 0x00002b69a7fe2b59 in empty_tmcb_list (head=0x2b69b837c948) at
t_hooks.c:56
#4 0x00002b69a7fd057e in free_cell (dead_cell=0x2b69b837c8d8) at
h_table.c:140
#5 0x00002b69a7fe5e78 in delete_cell (p_cell=0x2b69b837c8d8, unlock=1) at
timer.c:240
#6 0x00002b69a7fe69ac in timer_routine (ticks=<value optimized out>,
set=<value optimized out>) at timer.c:416
#7 0x00000000004babe2 in start_timer_processes () at timer.c:384
#8 0x0000000000434711 in main_loop () at main.c:1016
#9 0x00000000004386f5 in main (argc=<value optimized out>,
argv=0x7fff7e830838) at main.c:1634
The seg fault happens in the next_state_dlg function (line 777 - when
trying to lock the dialog entry):
(gdb) list
772 struct dlg_entry * d_entry;
773
774 d_entry = &(d_table->entries[dlg->h_entry]);
775 *unref = 0;
776
777 dlg_lock(d_table, d_entry);
778
779 *old_state = dlg->state;
780
781 switch (event) {
Thanks,
Mickael
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users