[asterisk-dev] Deadlock GIT 13
Ross Beer
ross.beer at outlook.com
Thu Feb 16 06:20:02 CST 2017
Unfortunately, the commit did not resolve the issue.
This looks related to a lock inversion between channel hang up and the bridging code. There is an issue open for this ASTERISK-26445<https://issues.asterisk.org/jira/browse/ASTERISK-26445>
While writing I have also had the following segfault:
[Current thread is 1 (Thread 0x7efeed3d4700 (LWP 27169))]
#0 0x00007effa2cefa28 in raise () at /lib64/libc.so.6
#1 0x00007effa2cf162a in abort () at /lib64/libc.so.6
#2 0x00007effa2d32dea in () at /lib64/libc.so.6
#3 0x00007effa2d3b22a in _int_free () at /lib64/libc.so.6
#4 0x00007effa2d3e78c in free () at /lib64/libc.so.6
#5 0x00007effa5c73aa4 in default_block_free (factory=0x7eff13bee000 <caching_pool>, mem=0x7eff64c600d0, size=4096) at ../src/pj/pool_policy_malloc.c:78
#6 0x00007effa5c7b9ce in pj_pool_destroy_int (pool=0x7eff64c600d0) at ../src/pj/pool.c:296
initial_size = 4096
#7 0x00007effa5c7c1aa in cpool_release_pool (pf=0x7eff13bee000 <caching_pool>, pool=0x7eff64c600d0) at ../src/pj/pool_caching.c:238
cp = 0x7eff13bee000 <caching_pool>
pool_capacity = 12096
i = 32511
#8 0x00007effa5c7b1ef in pj_pool_release (pool=0x7eff64c600d0) at ../include/pj/pool_i.h:92
#9 0x00007effa5be5f11 in pjsip_rx_data_free_cloned (rdata=0x7eff54259678) at ../src/pjsip/sip_transport.c:730
#10 0x00007eff139c8968 in distribute (data=0x7eff54259678) at res_pjsip/pjsip_distributor.c:779
param = {start_prio = 0, start_mod = 0x7eff13becc40 <distributor_mod>, idx_after_start = 1, silent = 0}
handled = 1
rdata = 0x7eff54259678
is_request = <optimized out>
endpoint = <optimized out>
#11 0x00000000005ee88f in ast_taskprocessor_execute (tps=0x3f14250) at taskprocessor.c:965
local = {local_data = 0x7efeed3d4700, data = 0x5f6012 <ast_threadstorage_set_ptr+60>}
t = 0x7eff55977e50
size = 66142800
__PRETTY_FUNCTION__ = "ast_taskprocessor_execute"
#12 0x00000000005f8444 in execute_tasks (data=0x3f14250) at threadpool.c:1322
tps = 0x3f14250
#13 0x00000000005ee88f in ast_taskprocessor_execute (tps=0x27180a0) at taskprocessor.c:965
local = {local_data = 0x7efeed3d3c80, data = 0x2691c60}
t = 0x7eff5484bc60
size = 40443032
__PRETTY_FUNCTION__ = "ast_taskprocessor_execute"
#14 0x00000000005f66f9 in threadpool_execute (pool=0x2691cb0) at threadpool.c:351
__PRETTY_FUNCTION__ = "threadpool_execute"
#15 0x00000000005f7db0 in worker_active (worker=0x7eff940097c0) at threadpool.c:1105
alive = 0
#16 0x00000000005f7b68 in worker_start (arg=0x7eff940097c0) at threadpool.c:1024
worker = 0x7eff940097c0
saved_state = (DEAD | unknown: 32508)
__PRETTY_FUNCTION__ = "worker_start"
#17 0x000000000060402e in dummy_start (data=0x7eff94009260) at utils.c:1235
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, -3586398186740987612, 139633997204095, 139633367009024, 507904, 507904, -3586398186715821788, 3731046902439921956}, __mask_was_saved = 0}}, __pad = {0x7efeed3d3df0, 0x0, 0x1, 0x7effa3c936e8 <__pthread_keys+1032>}}
__cancel_routine = 0x452814 <ast_unregister_thread>
__cancel_arg = 0x7efeed3d4700
__not_first_call = 0
ret = 0x7effa30728d8
a = {start_routine = 0x5f7ae1 <worker_start>, data = 0x7eff940097c0, name = 0x7eff9410c6e0 "worker_start started at [ 1079] threadpool.c worker_thread_start()"}
#18 0x00007effa3a8161a in start_thread () at /lib64/libpthread.so.0
#19 0x00007effa2dbd5fd in clone () at /lib64/libc.so.6
Should an issue be raised for this?
Regards,
Ross
________________________________
From: asterisk-dev-bounces at lists.digium.com <asterisk-dev-bounces at lists.digium.com> on behalf of Ross Beer <ross.beer at outlook.com>
Sent: 08 February 2017 18:17
To: Asterisk Developers Mailing List
Subject: Re: [asterisk-dev] Deadlock GIT 13
Hi Mark,
It does indeed, the patch has just been committed so I will check out the latest from git.
Thank you for your swift reply.
Kind regards,
Ross
________________________________
From: asterisk-dev-bounces at lists.digium.com <asterisk-dev-bounces at lists.digium.com> on behalf of Mark Michelson <mmichelson at digium.com>
Sent: 08 February 2017 17:55
To: Asterisk Developers Mailing List
Subject: Re: [asterisk-dev] Deadlock GIT 13
On 02/08/2017 11:26 AM, Ross Beer wrote:
Hi,
I'm getting a deadlock every so often with asterisk 13 GIT. There are a lot of low level locks:
#0 0x00007f64ca6f052d in nanosleep () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f64cdcc9700 (LWP 20745))]
#0 0x00007f64ca6f052d in nanosleep () at /lib64/libc.so.6
#1 0x00007f64ca6f03c4 in sleep () at /lib64/libc.so.6
#2 0x00000000004fc844 in db_sync_thread (data=0x0) at db.c:980
__PRETTY_FUNCTION__ = "db_sync_thread"
#3 0x000000000060401e in dummy_start (data=0x1e04440) at utils.c:1235
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, -361566044794415684, 140733401961727, 140070926194432, 507904, 0, -361566044802804292, 302566635355346364}, __mask_was_saved = 0}}, __pad = {0x7f64cdcc8df0, 0x0, 0x0, 0x0}}
__cancel_routine = 0x452814 <ast_unregister_thread>
__cancel_arg = 0x7f64cdcc9700
__not_first_call = 0
ret = 0x7f64cdcc8df0
a = {start_routine = 0x4fc765 <db_sync_thread>, data = 0x0, name = 0x1e055b0 "db_sync_thread started at [ 1022] db.c astdb_init()"}
#4 0x00007f64cb3ee61a in start_thread (arg=0x7f64cdcc9700) at pthread_create.c:334
__res = <optimized out>
pd = 0x7f64cdcc9700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140070926194432, 302565808931837372, 140733401961727, 140070926194432, 507904, 0, -361566044792318532, -361562863565433412}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
#5 0x00007f64ca72a5fd in clone () at /lib64/libc.so.6
Should an issue be created on Jira?
Regards,
Ross
Hi Ross,
This may be the same issue that George discovered earlier today while doing some testing. If you apply the code change on this review https://gerrit.asterisk.org/#/c/4902/ , do you still see the issue?
Gerrit Code Review<https://gerrit.asterisk.org/#/c/4902/>
gerrit.asterisk.org
gerrit.asterisk.org runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in ...
Mark Michelson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20170216/103695b9/attachment.html>
More information about the asterisk-dev
mailing list