Hello,
does it happen only when doing restart of kamailio? Can you send the
full backtrace from gdb?
Also, 5.0.x is no longer a supported release for quite some time, try to
upgrade to 5.2.x or even better to the latest one 5.3.x and see if you
can reproduce it with one of the supported releases, maybe it is
something that was already fixed.
Cheers,
Daniel
On 17.03.20 10:32, Virgílio Cunha wrote:
Hello,
I have in production environment with 4 proxies using DMQ to sync
terminal registers and the DMQ configuration parameters is following:
loadmodule "dmq.so"
#modparam("dmq", "server_address",
"sip:MY_IP_ADDRESS:MY_PORT_ADDRESS")
modparam("dmq", "notification_address", "DMQ_HOSTS")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 4)
In the lab environment with the same configuration that in prod, I can
simulate this problem with 12000 terminal REGISTERS and, when doing
several restarts on a proxy, one of them is generated a coredump.
Analyzing the core, I can see that the problem is concurrency in the
dmq synchronization.
Job_queue_size (...) is called with a valid /queue /and, but inside
this function, the /queue /is null.
(gdb) up
#1 0x00007fefe58ee246 in job_queue_size (queue=0x0) at worker.c:254
254 return atomic_get(&queue->count);
(gdb) print queue
$1 = (job_queue_t *) 0x0
(gdb) up
#2 0x00007fefe58ed920 in add_dmq_job (msg=0x7ff028b453f8,
peer=0x7fefebcc4df8) at worker.c:184
184 if(job_queue_size(workers[i].queue) == 0) {
(gdb) print i
$2 = 1
(gdb) print workers[i].queue
$3 = (job_queue_t *) 0x7fefebce49b0
If I configure DMQ with num_workers=1 I can't reproduce this problem.
I'm using the kamailio 5.0.8 release.
Is this problem known to you? What is the right way to solve it?
Best Regards,
Virgílio Cunha
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla --
www.asipto.com
www.twitter.com/miconda --
www.linkedin.com/in/miconda