[Freeswitch-dev] FreeSWITCH Windows Crash due to Detached Threads (and solution)

Ron Avriel ravriel_1 at yahoo.com
Sun Feb 15 06:49:38 PST 2009


Under Windows, FreeSWITCH consistently crashes with all default install setting after issuing the ‘shutdown’ 
command from console immediately after startup, without a single call handled. 
Note that on my servers, this only happens in ‘Release’ version, not in ‘Debug’.

The problem is due to “problematic” Windows thread handling.
I noticed that all FS threads are ‘detachable’ and not ‘joinable’. When an application with active detached threads terminates, a race condition can lead to the application crash, as shown in the sample application 
at http://pastebin.freeswitch.org/7225 . 

This is exactly what causes FS to crash as a result of the mod_event_socket detached runtime thread.

A temporary workaround is to change in switch_loadable_module_exec() the call to 
switch_yield(1000000) with switch_thread_exit(thread, 0).

In my case it solved the crash, but theoretically it does not always solve the problem, because there is no 
guarantee that it will get called before the main thread reaches its termination code.

I think the only safe solution is to use ‘joinable’ threads. Is there a good reason they’re not used? 

Note – this problem was reported to jira about a month ago http://jira.freeswitch.org/browse/MODEVENT-37 but it seems it was ignored.


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

More information about the Freeswitch-dev mailing list