Possible deadlock while originating outbound calls using adhearsion-drb

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Possible deadlock while originating outbound calls using adhearsion-drb

Giorgio Bianchi
Hi,
I'm trying to originate calls using adhearsion-drb.
The problem happens randomly and gets worse when I try to originate 30+ calls concurrently.
I'm using Freeswitch 1.4.12 stable and Adhearsion 2.5.4 with Ruby 2.1.3.
When it happens, rayo stops responding : the "rayo status" command hangs.
This is the log from adhearsion :

 2014-10-16 17:51:32.646] ERROR Adhearsion::Initializer: <Adhearsion::Call::CommandTimeout> #<Punchblock::Command:Dial target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Thu, 16 Oct 2014 17:50:32 +0200, request_id="1a8f37ca-847f-4ced-b225-b6c776c568f3", headers={}, to="sofia/gateway/outbound/[called_number]", from="[from_number]", uri="xmpp:edd39fff-b738-4599-84ff-bd7d8c0481ba@ip-address", timeout=60000, join=nil>

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
(celluloid):0:in `remote procedure call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
===> Here I do call.dial dialString, {} <===:in `block in start_call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:110:in `block in wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid.rb:99:in `suspend'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
====> This is the call to drb method <=====:in `start_call'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'

There aren't relevant logs in freeswitch.

Thanks for the help.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Possible deadlock while originating outbound calls using adhearsion-drb

Ben Klang-2
On Oct 16, 2014, at 12:28 PM, Giorgio Bianchi <[hidden email]> wrote:

Hi,
I'm trying to originate calls using adhearsion-drb.
The problem happens randomly and gets worse when I try to originate 30+ calls concurrently.
I'm using Freeswitch 1.4.12 stable and Adhearsion 2.5.4 with Ruby 2.1.3.
When it happens, rayo stops responding : the "rayo status" command hangs.

If you “rayo status” command is hanging on the FS CLI, then that is a deadlock in FreeSWITCH.  It’s definitely acceptable to discuss it here, but you probably should also open a bug on the FreeSWITCH JIRA so they can investigate: https://jira.freeswitch.org

It’s likely that mod_rayo hanging is causing those CommandTimeouts.

/BAK/
-- 
Ben Klang
Principal/Technology Strategist, Mojo Lingo
+1.404.475.4841

Mojo Lingo -- Voice applications that work like magic
Twitter: @MojoLingo



This is the log from adhearsion :

 2014-10-16 17:51:32.646] ERROR Adhearsion::Initializer: <Adhearsion::Call::CommandTimeout> #<Punchblock::Command:Dial target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Thu, 16 Oct 2014 17:50:32 +0200, request_id="1a8f37ca-847f-4ced-b225-b6c776c568f3", headers={}, to="sofia/gateway/outbound/[called_number]", from="[from_number]", uri="<a href="xmpp:edd39fff-b738-4599-84ff-bd7d8c0481ba@ip-address">xmpp:edd39fff-b738-4599-84ff-bd7d8c0481ba@ip-address", timeout=60000, join=nil>

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
(celluloid):0:in `remote procedure call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
===> Here I do call.dial dialString, {} <===:in `block in start_call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:110:in `block in wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid.rb:99:in `suspend'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
====> This is the call to drb method <=====:in `start_call'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'

There aren't relevant logs in freeswitch.

Thanks for the help.


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.


signature.asc (858 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Possible deadlock while originating outbound calls using adhearsion-drb

Giorgio Bianchi
Hi, thanks for the help.
https://jira.freeswitch.org/browse/FS-6929

Il giorno giovedì 16 ottobre 2014 18:34:13 UTC+2, Ben Klang ha scritto:
On Oct 16, 2014, at 12:28 PM, Giorgio Bianchi <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="arDc__6MnpAJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">gggg.b...@...> wrote:

Hi,
I'm trying to originate calls using adhearsion-drb.
The problem happens randomly and gets worse when I try to originate 30+ calls concurrently.
I'm using Freeswitch 1.4.12 stable and Adhearsion 2.5.4 with Ruby 2.1.3.
When it happens, rayo stops responding : the "rayo status" command hangs.

If you “rayo status” command is hanging on the FS CLI, then that is a deadlock in FreeSWITCH.  It’s definitely acceptable to discuss it here, but you probably should also open a bug on the FreeSWITCH JIRA so they can investigate: <a href="https://jira.freeswitch.org" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org\46sa\75D\46sntz\0751\46usg\75AFQjCNHI3KdSdwlnFKUL2VNeoNGj9E1Rqg';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org\46sa\75D\46sntz\0751\46usg\75AFQjCNHI3KdSdwlnFKUL2VNeoNGj9E1Rqg';return true;">https://jira.freeswitch.org

It’s likely that mod_rayo hanging is causing those CommandTimeouts.

/BAK/
-- 
Ben Klang
Principal/Technology Strategist, Mojo Lingo
<a href="javascript:" target="_blank" gdf-obfuscated-mailto="arDc__6MnpAJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">bkl...@...
+1.404.475.4841

Mojo Lingo -- Voice applications that work like magic
<a href="http://mojolingo.com/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fmojolingo.com%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEdz1VI9Wu7PPmqtzifmF6XsODIog';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fmojolingo.com%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEdz1VI9Wu7PPmqtzifmF6XsODIog';return true;">http://mojolingo.com
Twitter: @MojoLingo



This is the log from adhearsion :

 2014-10-16 17:51:32.646] ERROR Adhearsion::Initializer: <Adhearsion::Call::CommandTimeout> #<Punchblock::Command:Dial target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Thu, 16 Oct 2014 17:50:32 +0200, request_id="1a8f37ca-847f-4ced-b225-b6c776c568f3", headers={}, to="sofia/gateway/outbound/[called_number]", from="[from_number]", uri="xmpp:edd39fff-b738-4599-84ff-bd7d8c0481ba@ip-address", timeout=60000, join=nil>

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
(celluloid):0:in `remote procedure call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
===> Here I do call.dial dialString, {} <===:in `block in start_call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:110:in `block in wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid.rb:99:in `suspend'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
====> This is the call to drb method <=====:in `start_call'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'

There aren't relevant logs in freeswitch.

Thanks for the help.


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="arDc__6MnpAJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Possible deadlock while originating outbound calls using adhearsion-drb

Evan McGee
Just as an FYI, Chris is aware of this issue - it's a strange mutex bug that is present in the 1.4 stable & master branches of FS. 

As far as is known, it is not present in the 1.2 stable branch if you'd like to continue using that for the moment.

On Friday, October 17, 2014 4:35:42 AM UTC-7, Giorgio Bianchi wrote:
Hi, thanks for the help.
<a href="https://jira.freeswitch.org/browse/FS-6929" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org%2Fbrowse%2FFS-6929\46sa\75D\46sntz\0751\46usg\75AFQjCNGvM6-Enr5atmMJ0GXxP9cR80Cu6g';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org%2Fbrowse%2FFS-6929\46sa\75D\46sntz\0751\46usg\75AFQjCNGvM6-Enr5atmMJ0GXxP9cR80Cu6g';return true;">https://jira.freeswitch.org/browse/FS-6929

Il giorno giovedì 16 ottobre 2014 18:34:13 UTC+2, Ben Klang ha scritto:
On Oct 16, 2014, at 12:28 PM, Giorgio Bianchi <[hidden email]> wrote:

Hi,
I'm trying to originate calls using adhearsion-drb.
The problem happens randomly and gets worse when I try to originate 30+ calls concurrently.
I'm using Freeswitch 1.4.12 stable and Adhearsion 2.5.4 with Ruby 2.1.3.
When it happens, rayo stops responding : the "rayo status" command hangs.

If you “rayo status” command is hanging on the FS CLI, then that is a deadlock in FreeSWITCH.  It’s definitely acceptable to discuss it here, but you probably should also open a bug on the FreeSWITCH JIRA so they can investigate: <a href="https://jira.freeswitch.org" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org\46sa\75D\46sntz\0751\46usg\75AFQjCNHI3KdSdwlnFKUL2VNeoNGj9E1Rqg';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fjira.freeswitch.org\46sa\75D\46sntz\0751\46usg\75AFQjCNHI3KdSdwlnFKUL2VNeoNGj9E1Rqg';return true;">https://jira.freeswitch.org

It’s likely that mod_rayo hanging is causing those CommandTimeouts.

/BAK/
-- 
Ben Klang
Principal/Technology Strategist, Mojo Lingo
+1.404.475.4841

Mojo Lingo -- Voice applications that work like magic
<a href="http://mojolingo.com/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fmojolingo.com%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEdz1VI9Wu7PPmqtzifmF6XsODIog';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fmojolingo.com%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEdz1VI9Wu7PPmqtzifmF6XsODIog';return true;">http://mojolingo.com
Twitter: @MojoLingo



This is the log from adhearsion :

 2014-10-16 17:51:32.646] ERROR Adhearsion::Initializer: <Adhearsion::Call::CommandTimeout> #<Punchblock::Command:Dial target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Thu, 16 Oct 2014 17:50:32 +0200, request_id="1a8f37ca-847f-4ced-b225-b6c776c568f3", headers={}, to="sofia/gateway/outbound/[called_number]", from="[from_number]", uri="xmpp:edd39fff-b738-4599-84ff-bd7d8c0481ba@ip-address", timeout=60000, join=nil>

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'

/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:416:in `block in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `[]'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:432:in `rescue in write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:435:in `write_and_await_response'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/outbound_call.rb:96:in `dial'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
(celluloid):0:in `remote procedure call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
===> Here I do call.dial dialString, {} <===:in `block in start_call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:146:in `dispatch'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:110:in `block in wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:96:in `wait'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid.rb:99:in `suspend'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'
/usr/local/rvm/gems/ruby-2.1.3/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/usr/local/rvm/gems/ruby-2.1.3/gems/adhearsion-2.5.4/lib/adhearsion/call.rb:26:in `method_missing'
====> This is the call to drb method <=====:in `start_call'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop'
/usr/local/rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/usr/local/rvm/gems/ruby-2.1.3/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'

There aren't relevant logs in freeswitch.

Thanks for the help.


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.