you can do whatever you wish. I was just warning you that nobody has really pushed event binding and unbinding in such a way before which may explain how you uncovered that issue. Usually things that bind stay resident for a long time.
2011/11/28 Karol Golab <karol@tls.pl>
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 ;)_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
2011/11/28 Brian West <brian@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@freeswitch.org
http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com
FreeSWITCH-dev mailing list
FreeSWITCH-dev@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@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900
Karol -- e-mail: Karol.Golab@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ł
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com
FreeSWITCH-dev mailing list
FreeSWITCH-dev@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@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-dev mailing list FreeSWITCH-dev@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@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ł