[Freeswitch-dev] Possible deadlock in src/switch_event.c ?

Anthony Minessale anthony.minessale at gmail.com
Mon Nov 28 19:36:49 MSK 2011


you're probably right but I wonder what you are doing that is binding and
unbinding so much?
The bind and unbind was designed to be called once when the module is
loaded and called again when it exits.

My fear is you are using the embedded scripting event handers in some quick
repeating fashion.

I did a commit to flip that case around but I don't encourage you to use
embedded scripts for heavy event traffic, that's what event socket is for
and if you have the C skills to debug this, you might want to try a C app ;)


2011/11/28 Brian West <brian at freeswitch.org>

> Please post it to jira.freeswitch.org
>
> /b
>
> On Nov 28, 2011, at 2:31 AM, Karol Golab wrote:
>
>
>   Hi!
>
>   I've noticed some strange code in src/switch_event.c - could someone
> smarter (& knowing the mentioned code) please take a look?
>
>   The problem is in the order of calls to locks BLOCK & RWLOCK - it
> differs between functions:
>
> switch_event_bind_removable
>         switch_mutex_lock(BLOCK);
>         switch_thread_rwlock_wrlock(RWLOCK);
>
> switch_event_unbind_callback
>     switch_thread_rwlock_wrlock(RWLOCK);
>     switch_mutex_lock(BLOCK);
>
> switch_event_unbind
>     switch_thread_rwlock_wrlock(RWLOCK);
>     switch_mutex_lock(BLOCK);
>
>   As I understand this may lead to an outright deadlock between bind
> and unbind.
>
>   I stumbled upon this code while debugging what seems like deadlocks
> in our test FS installation put under some heavy load. The load is about
> 25 new event subscribers per second (destroyed few seconds later) and
> about 700 events per second.
>
>   Regards,
>   Karol
>
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> 
> 
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org
>
>


-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org
googletalk:conf+888 at conference.freeswitch.org
pstn:+19193869900
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20111128/b361f66e/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list