[asterisk-bugs] [JIRA] (ASTERISK-30085) res_parking: Deadlock when parking call dynamically

N A (JIRA) noreply at issues.asterisk.org
Mon May 30 12:17:49 CDT 2022


    [ https://issues.asterisk.org/jira/browse/ASTERISK-30085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=259347#comment-259347 ] 

N A commented on ASTERISK-30085:
--------------------------------

This reproduces the deadlock for me after getting run twice:

channel originate Local/2 at rdct-park application Wait 11

{noformat}
[rdct-park]
exten => _X!,1,Wait(3)
	same => n,MSet(__PARKINGDYNAMIC=rdct,__PARKINGDYNCONTEXT=centrex-1-park,__PARKINGDYNPOS=1-999999,__PARKINGEXTEN=2702129,__PARKINGDYNEXTEN=2702129)
	same => n,Park(centrex-1-park,st(10)c(rdct-park-recall,4002702129,1))
{noformat}

{noformat}
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:956 __ast_rwlock_wrlock: pbx.c line 8982 (ast_wrlock_context): Deadlock? waited 15 sec for writelock '&con->lock'?
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(__ast_bt_get_addresses+0x1d) [0x56383d4486dd]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(__ast_rwlock_wrlock+0xb5) [0x56383d5052be]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(ast_wrlock_context+0x32) [0x56383d53978c]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0x7777) [0x7fd243422777]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0x8dc8) [0x7fd243423dc8]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0x9014) [0x7fd243424014]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0xe1cc) [0x7fd2434291cc]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0xe3d5) [0x7fd2434293d5]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /usr/lib/asterisk/modules/res_parking.so(+0xe563) [0x7fd243429563]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(pbx_exec+0x138) [0x56383d53d287]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(+0x161a75) [0x56383d525a75]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(ast_spawn_extension+0x50) [0x56383d529d7e]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(+0x166b0d) [0x56383d52ab0d]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(+0x1684b6) [0x56383d52c4b6]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: asterisk(+0x214e03) [0x56383d5d8e03]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3) [0x7fd265767fa3]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:76 __dump_backtrace: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fd2651fbeff]
[2022-05-30 17:15:12] ERROR[15087][C-00000002]: lock.c:964 __ast_rwlock_wrlock: pbx.c line 8982 (ast_wrlock_context): '&con->lock' was locked  here.
{noformat}

Same res_parking.conf as above.

Obviously, I should state this is with DETECT_DEADLOCKS and DEBUG_THREADS. That said, it's consistently and repeatedly showing a deadlock on the con->lock WRLOCK in the dialplan, when adding the dynamic parking location.

> res_parking: Deadlock when parking call dynamically
> ---------------------------------------------------
>
>                 Key: ASTERISK-30085
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-30085
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_parking
>    Affects Versions: 18.9.0
>            Reporter: N A
>            Assignee: Unassigned
>            Severity: Major
>         Attachments: akriekcyui.txt, mcfbcownho.txt
>
>
> Asterisk deadlocks when parking a call.
> Because the deadlock is in the dialplan, Asterisk must be restarted to clear the deadlock.
> {noformat}
> [rdct]
> context => parkedcalls
> parkpos => 1-9999999
> parkingtime = 90
> comebacktoorigin = no
> comebackcontext = park-recall
> comebackdialtime = 9999999
> parkedmusicclass = default
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list