[Freeswitch-dev] Possible deadlock in src/switch_event.c ?
Karol Golab
karol at tls.pl
Mon Nov 28 23:13:23 MSK 2011
Well, I have a Perl script run as part of a dialplan and the script
creates an EventConsumer. Thus I have one bind / unbind pair for each
connection. Is this somehow wrong / against what the EventConsumer API
was planned for?
How could I have a single bind/unbind in this case?
As for choosing event socket and C application vs a script - what is
the main difference / reason to switch: performance of some other
issues? My CPU seems to have some cycles to spare.
Regards,
Karol
On 11/28/2011 05:36 PM, Anthony Minessale wrote:
> 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 <mailto:brian at freeswitch.org>>
>
> Please post it to jira.freeswitch.org <http://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 <mailto: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
> <mailto: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
> <mailto:MSN%3Aanthony_minessale at hotmail.com>
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> <mailto:PAYPAL%3Aanthony.minessale at gmail.com>
> IRC: irc.freenode.net <http://irc.freenode.net> #freeswitch
>
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> <mailto:sip%3A888 at conference.freeswitch.org>
> googletalk:conf+888 at conference.freeswitch.org
> <mailto:googletalk%3Aconf%2B888 at conference.freeswitch.org>
> pstn:+19193869900
>
>
> _________________________________________________________________________
> 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
Karol
--
e-mail: Karol.Golab at tls.pl
www: http://www.tls.pl
signature: not found
company: TLS-Technologie Spółka z ograniczoną odpowiedzialnością z siedzibą w Warszawie przy ul. Polnej 50 00-644; KRS 0000073337 (XII Wydział Gospodarczy KRS); NIP 526-25-78-091; VAT ID PL5262578091; REGON 017349442; kap. zak. 50000,00 zł
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20111128/ddb01fb8/attachment.html
Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev
mailing list