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

Brian West brian at freeswitch.org
Mon Nov 28 19:27:06 MSK 2011


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20111128/d48e1d80/attachment.html 


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