[Freeswitch-dev] FreeSWITCH on Windows crashing when doing deflect/REFER
Tamas Cseke
cstomi.levlist at gmail.com
Mon Oct 12 04:50:51 PDT 2009
Hello,
I have a simliar problem with starting thread (not with REFER), that I
can't reproduce on linux.
Could you please tell me what was the solution for you?
Was it a bug? If yes, which jira ticket is this?
Thanks in advance,
Tamas
Peter Olsson írta:
> I have a problem with FreeSWITCH (r13175) when using REFER. If running inside Visual Studio, everytime (during the REFER) I get a "...has triggered a breakpoint". It's possible to click continue to go on, but eventually (another 2-3 calls) FreeSWITCH crasches completely. When running outside Visual Studio I get a crasch after maybe 10 calls.
>
> Another interesting scenario is when running outside the debugger and I enable siptracing it's much more stable - even though it crasches eventually - this is what makes me wonder about mutexes...
>
> I've tracked it down to calls to malloc() and calloc() which in 100% of the cases is in the top of the call stack.
>
> My thought is that it might be related to a mutex issue somewhere. Below I've copied the call stack from two times it's happened to me. These are the most common traces, but sometimes it's a malloc being called from the sqlite lib. But so far I always think it's been related to a malloc/calloc.
>
> These things have occured in a couple of other places as well, for instance when a SIP registration fails (registering to an external server) with error 404 I also get a breakpoint triggered, but I don't think that has caused any crasches yet.
>
> I've tried to debug this on my own, but so far I didn't find anything, so that's why I'm asking you guys :) I think I'm going to try the same on Linux as well, and see if it works differently there.
>
> If you need more info, please let me know, I'll try to help out as much as possible. I thought I'd post this here first, if you have any ideas. If not I'll file a Jira for the issue.
>
> -----
>
> ntdll.dll!DbgBreakPoint()
> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> ntdll.dll!RtlpNtMakeTemporaryKey() + 0x3eee bytes
> ntdll.dll!RtlTimeToElapsedTimeFields() + 0xd8c3 bytes
> ntdll.dll!RtlTryEnterCriticalSection() + 0x66f bytes
> ntdll.dll!RtlpNtMakeTemporaryKey() + 0x4785 bytes
> ntdll.dll!RtlTimeToElapsedTimeFields() + 0xd6f1 bytes
> ntdll.dll!RtlTryEnterCriticalSection() + 0x66f bytes
>
>> msvcr90d.dll!_heap_alloc_base(unsigned int size=41) Line 105 + 0x28 bytes C
>>
> msvcr90d.dll!_heap_alloc_dbg_impl(unsigned int nSize=5, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x0739f498) Line 427 + 0x9 bytes C++
> msvcr90d.dll!_nh_malloc_dbg_impl(unsigned int nSize=5, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x0739f498) Line 239 + 0x19 bytes C++
> msvcr90d.dll!_nh_malloc_dbg(unsigned int nSize=5, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Line 296 + 0x1d bytes C++
> msvcr90d.dll!malloc(unsigned int nSize=5) Line 56 + 0x15 bytes C++
> FreeSwitch.dll!my_dup(const char * s=0x035724c8) Line 95 + 0xc bytes C
> FreeSwitch.dll!switch_event_add_header_string(switch_event * event=0x0370fe00, switch_stack_t stack=SWITCH_STACK_BOTTOM, const char * header_name=0x0739f50c, const char * data=0x035724c8) Line 785 + 0x9 bytes C
> FreeSwitch.dll!switch_channel_event_set_extended_data(switch_channel * channel=0x05d86ab0, switch_event * event=0x0370fe00) Line 1365 C
> FreeSwitch.dll!switch_channel_event_set_data(switch_channel * channel=0x05d86ab0, switch_event * event=0x0370fe00) Line 1378 C
> FreeSwitch.dll!switch_core_session_exec(switch_core_session * session=0x05d82538, const switch_application_interface * application_interface=0x0357c258, const char * arg=0x05d2b8b0) Line 1472 C
> FreeSwitch.dll!switch_core_session_execute_application(switch_core_session * session=0x05d82538, const char * app=0x05d2b8a8, const char * arg=0x05d2b8b0) Line 1392 C
> FreeSwitch.dll!switch_core_standard_on_execute(switch_core_session * session=0x05d82538) Line 168 + 0x16 bytes C
> FreeSwitch.dll!switch_core_session_run(switch_core_session * session=0x05d82538) Line 490 + 0x204 bytes C
> FreeSwitch.dll!switch_core_session_thread(apr_thread_t * thread=0x05ca71f8, void * obj=0x05d82538) Line 1060 C
> libapr.dll!dummy_worker(void * opaque=0x05ca71f8) Line 80 C
> msvcr90d.dll!_callthreadstartex() Line 348 + 0xf bytes C
> msvcr90d.dll!_threadstartex(void * ptd=0x03574318) Line 331 C
> kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
> ntdll.dll!RtlInitializeExceptionChain() + 0x63 bytes
> ntdll.dll!RtlInitializeExceptionChain() + 0x36 bytes
>
> ----------------
>
> ntdll.dll!DbgBreakPoint()
> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> ntdll.dll!RtlpNtMakeTemporaryKey() + 0x3eee bytes
> ntdll.dll!RtlTimeToElapsedTimeFields() + 0xd8c3 bytes
> ntdll.dll!RtlTryEnterCriticalSection() + 0x66f bytes
> ntdll.dll!RtlpNtMakeTemporaryKey() + 0x4785 bytes
> ntdll.dll!RtlTimeToElapsedTimeFields() + 0xd6f1 bytes
> ntdll.dll!RtlTryEnterCriticalSection() + 0x66f bytes
>
>> msvcr90d.dll!_heap_alloc_base(unsigned int size=544) Line 105 + 0x28 bytes C
>>
> msvcr90d.dll!_heap_alloc_dbg_impl(unsigned int nSize=508, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x042df664) Line 427 + 0x9 bytes C++
> msvcr90d.dll!_nh_malloc_dbg_impl(unsigned int nSize=508, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x042df664) Line 239 + 0x19 bytes C++
> msvcr90d.dll!_calloc_dbg_impl(unsigned int nNum=1, unsigned int nSize=508, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x042df664) Line 593 + 0x20 bytes C++
> msvcr90d.dll!_calloc_dbg(unsigned int nNum=1, unsigned int nSize=508, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Line 644 + 0x1d bytes C++
> msvcr90d.dll!calloc(unsigned int nNum=1, unsigned int nSize=508) Line 56 + 0x13 bytes C++
> mod_sofia.dll!su_home_new(unsigned int size=508) Line 562 + 0xe bytes C
> mod_sofia.dll!msg_create(const msg_mclass_s * mc=0x036f89e8, int flags=2) Line 61 + 0x12 bytes C
> mod_sofia.dll!nta_msg_create(nta_agent_s * agent=0x037c5430, int flags=0) Line 3305 + 0x16 bytes C
> mod_sofia.dll!nua_client_request_template(nua_client_request * cr=0x038c2568) Line 613 + 0x11 bytes C
> mod_sofia.dll!nua_client_init_request0(nua_client_request * cr=0x038c2568) Line 493 + 0x9 bytes C
> mod_sofia.dll!nua_client_init_request(nua_client_request * cr=0x038c2568) Line 441 + 0x9 bytes C
> mod_sofia.dll!nua_client_create(nua_handle_s * nh=0x038607f0, int event=33, const nua_client_methods_t * methods=0x03ca2268, const tagi_t * const tags=0x00000000) Line 199 + 0x9 bytes C
> mod_sofia.dll!nua_session_usage_shutdown(nua_handle_s * nh=0x038607f0, nua_dialog_state * ds=0x03860828, nua_dialog_usage * du=0x0386adc0) Line 1622 + 0x12 bytes C
> mod_sofia.dll!nua_dialog_usage_shutdown(su_home_s * owner=0x038607f0, nua_dialog_state * ds=0x03860828, nua_dialog_usage * du=0x0386adc0) Line 610 + 0x19 bytes C
> mod_sofia.dll!nua_dialog_shutdown(su_home_s * owner=0x038607f0, nua_dialog_state * ds=0x03860828) Line 587 + 0x11 bytes C
> mod_sofia.dll!nua_stack_destroy_handle(nua_s * nua=0x037ca4a8, nua_handle_s * nh=0x038607f0, const tagi_t * tags=0x03872944) Line 918 + 0x10 bytes C
> mod_sofia.dll!nua_stack_signal(nua_s * nua=0x037ca4a8, su_msg_s * * msg=0x042df868, nua_ee_data * ee=0x0387292c) Line 641 + 0x11 bytes C
> mod_sofia.dll!su_base_port_execute_msgs(su_msg_s * queue=0x00000000) Line 280 + 0x2c bytes C
> mod_sofia.dll!su_base_port_getmsgs(su_port_s * self=0x037cac68) Line 202 + 0x9 bytes C
> mod_sofia.dll!su_base_port_run(su_port_s * self=0x037cac68) Line 335 + 0x11 bytes C
> mod_sofia.dll!su_port_run(su_port_s * self=0x037cac68) Line 326 + 0x11 bytes C
> mod_sofia.dll!su_root_run(su_root_s * self=0x037cf1c0) Line 819 + 0xc bytes C
> mod_sofia.dll!su_pthread_port_clone_main(void * varg=0x03e3f96c) Line 324 + 0x9 bytes C
> pthreadVC2.dll!ptw32_threadStart(void * vthreadParms=0x03771cb8) Line 219 + 0x9 bytes C
> msvcr90d.dll!_callthreadstartex() Line 348 + 0xf bytes C
> msvcr90d.dll!_threadstartex(void * ptd=0x0378a3e8) Line 331 C
> kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
> ntdll.dll!RtlInitializeExceptionChain() + 0x63 bytes
> ntdll.dll!RtlInitializeExceptionChain() + 0x36 bytes
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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
>
More information about the FreeSWITCH-dev
mailing list