[asterisk-bugs] [JIRA] (ASTERISK-29998) sla: deadlock when calling SLAStation application

N A (JIRA) noreply at issues.asterisk.org
Thu Mar 31 06:10:29 CDT 2022


N A created ASTERISK-29998:
------------------------------

             Summary: sla: deadlock when calling SLAStation application
                 Key: ASTERISK-29998
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29998
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_meetme
    Affects Versions: 18.6.0
            Reporter: N A


As soon as I call the SLAStation application in the dialplan, deadlock ensues almost instantly:

Initially, I get this:

[Mar 30 20:10:16] DEBUG[9760]: channel.c:3073 ast_waitfor_nandfds: Thread LWP 9760 is blocking 'DAHDI/5-1', already blocked by thread LWP 9655 in procedure ast_waitfor_nandfds

An IAX2 trunk call that normally works fails, seemingly as a result of that. I can get a Local channel to at least dial.

Then, the longer one waits, the worse the issue progressively becomes,and it's very clear that there is a deadlock here, between 9862 and 9863:

[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9863]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9863 is blocking 'DAHDI/5-1', already blocked by thread LWP 9862 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:04] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9863]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9863 is blocking 'DAHDI/5-1', already blocked by thread LWP 9862 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9863]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9863 is blocking 'DAHDI/5-1', already blocked by thread LWP 9862 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9863]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9863 is blocking 'DAHDI/5-1', already blocked by thread LWP 9862 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9863]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9863 is blocking 'DAHDI/5-1', already blocked by thread LWP 9862 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds
[Mar 30 20:20:05] DEBUG[9862][C-00000001]: chan_dahdi.c:8742 dahdi_read: Thread LWP 9862 is blocking 'DAHDI/5-1', already blocked by thread LWP 9863 in procedure ast_waitfor_nandfds

Interestingly, "core show locks" does not return anything (no locks held).

Finally, to round things off, when I hang up the phone that called SLAStation, I get thousands of these per second in the log:

[Mar 30 20:10:21] DEBUG[9760]: devicestate.c:361 _ast_device_state: No provider found, checking channel drivers for DAHDI - 5
[Mar 30 20:10:21] DEBUG[9760]: devicestate.c:361 _ast_device_state: No provider found, checking channel drivers for DAHDI - 5
[Mar 30 20:10:21] DEBUG[9760]: devicestate.c:361 _ast_device_state: No provider found, checking channel drivers for DAHDI - 5
[Mar 30 20:10:21] DEBUG[9760]: devicestate.c:361 _ast_device_state: No provider found, checking channel drivers for DAHDI - 5
[Mar 30 20:10:21] WARNING[9760]: logger: ***: Log queue threshold (1000) exceeded.  Discarding new messages.
[Mar 30 20:10:21] WARNING[9559]: logger: ***: Logging resumed.  354 messages discarded.

This was initially. When I recompiled with developer options for locks and memory, this doesn't seem to happen anymore. However, the thread blocking still occurs.

minimal sla.conf:
{noformat}
[general]
attemptcallerid = no

[line1]
type = trunk
ringtimeout = 99999
device = Local/s at line1out
barge = yes
hold = open

[station1]
type = station
trunk = line1
device = DAHDI/5
{noformat}




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



More information about the asterisk-bugs mailing list