[Freeswitch-dev] crash running the core twice in one process
Tamas
jalsot at gmail.com
Thu Jul 2 08:05:33 PDT 2009
I'm working on an application which starts FS core in a new thread (upon
request) and there is a need to change some configuration options
runtime runtime (core settings) for which I have to restart the core, I
believe. My idea was to issue shutdown command to the core (which I do),
tear down the whole thread in which FS was started and start a new
thread, etc. For this scenario I was playing with fshost example.
Regards,
Tamas
ps: I'm playing with the 2nd issue, FS teardown and crash due to
mod_portaudio.
Mathieu Rene írta:
> Why exactly do you want to restart the whole core? FS is modular
> enough so you can restart it per module.
>
> Math
>
> On 2-Jul-09, at 10:47 AM, Tamas wrote:
>
>
>> Hi,
>>
>> I started with switch.c and saw execv lines. This works for sure.
>> What I
>> don't know is that why the way I'm doing does not work, what have I
>> missed.
>> My original problem is that when I tear down FS core started in a
>> thread, there is no issue, however when I tear down the thread FS core
>> was running in, I'm getting segfault which is similar to what I was
>> able
>> to reproduce with this fshost example (when I don't have FS
>> initiated in
>> that thread, thread tearing works fine).
>>
>> ...
>> 2009-07-02 16:41:08.777480 [CONSOLE] switch_core_sqldb.c:593 Waiting
>> for
>> unfinished SQL transactions
>> 2009-07-02 16:41:08.777576 [NOTICE] switch_core_sqldb.c:199 SQL thread
>> ending
>> 2009-07-02 16:41:08.787766 [CONSOLE] switch_scheduler.c:305 Stopping
>> Task Thread
>> 2009-07-02 16:41:09.190129 [DEBUG] switch_scheduler.c:138 Deleting
>> task
>> 1 heartbeat (core)
>> 2009-07-02 16:41:09.253047 [NOTICE] switch_scheduler.c:176 Task thread
>> ending
>> 2009-07-02 16:41:09.288623 [CONSOLE] switch_core.c:1656 Closing Event
>> Engine.
>> 2009-07-02 16:41:09.288746 [CONSOLE] switch_event.c:468 Stopping event
>> queue 0
>> 2009-07-02 16:41:09.288801 [CONSOLE] switch_event.c:468 Stopping event
>> queue 1
>> 2009-07-02 16:41:09.288844 [CONSOLE] switch_event.c:468 Stopping event
>> queue 2
>> 2009-07-02 16:41:09.288888 [CONSOLE] switch_event.c:325 Event Thread 1
>> Ended.
>> 2009-07-02 16:41:09.288884 [CONSOLE] switch_event.c:474 Stopping
>> dispatch queue 0
>> 2009-07-02 16:41:09.289079 [CONSOLE] switch_event.c:263 Dispatch
>> Thread
>> 0 Ended.
>> 2009-07-02 16:41:09.289312 [CONSOLE] switch_event.c:325 Event Thread 2
>> Ended.
>> 2009-07-02 16:41:09.290423 [CONSOLE] switch_event.c:492 Stopping
>> dispatch thread 0
>> 2009-07-02 16:41:09.290471 [CONSOLE] switch_event.c:506 Stopping queue
>> thread 0
>> 2009-07-02 16:41:09.288922 [CONSOLE] switch_event.c:325 Event Thread 0
>> Ended.
>> 2009-07-02 16:41:09.345453 [CONSOLE] switch_event.c:506 Stopping queue
>> thread 1
>> 2009-07-02 16:41:09.345510 [CONSOLE] switch_event.c:506 Stopping queue
>> thread 2
>> 2009-07-02 16:41:09.345561 [CONSOLE] switch_core.c:1659 Finalizing
>> Shutdown.
>> 2009-07-02 16:41:09.345697 [CONSOLE] switch_log.c:255 Logger Ended.
>> 2009-07-02 16:41:09.347192 [CONSOLE] switch_core_memory.c:567 Stopping
>> memory pool queue.
>> Initializing globals...
>> Initializing core...
>> 2009-07-02 16:41:09.448524 [INFO] switch_event.c:565 Activate Eventing
>> Engine.
>> Szegmens hiba (core dumped)
>>
>> Core was generated by `./fshost'.
>> Program terminated with signal 11, Segmentation fault.
>> #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8,
>> data=0x17cf600) at misc/apr_queue.c:215
>> 215 if (queue->terminated) {
>> (gdb) bt
>> #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8,
>> data=0x17cf600) at misc/apr_queue.c:215
>> #1 0x00007fce6f86c64a in switch_queue_trypush (queue=0x7fce6d54c5a8,
>> data=0x17cf600) at src/switch_apr.c:931
>> #2 0x00007fce6f8a3ab8 in switch_event_thread (thread=0x1bd5028,
>> obj=0x17bdb38) at src/switch_event.c:305
>> #3 0x00007fce6f910c01 in dummy_worker (opaque=0x1bd5028) at
>> threadproc/unix/thread.c:138
>> #4 0x00007fce6ec5d3ba in start_thread () from /lib/libpthread.so.0
>> #5 0x00007fce6f59bfcd in clone () from /lib/libc.so.6
>> #6 0x0000000000000000 in ?? ()
>> (gdb) bt full
>> #0 0x00007fce6f8fca7f in apr_queue_trypush (queue=0x7fce6d54c5a8,
>> data=0x17cf600) at misc/apr_queue.c:215
>> rv = 0
>> #1 0x00007fce6f86c64a in switch_queue_trypush (queue=0x7fce6d54c5a8,
>> data=0x17cf600) at src/switch_apr.c:931
>> s = 0
>> #2 0x00007fce6f8a3ab8 in switch_event_thread (thread=0x1bd5028,
>> obj=0x17bdb38) at src/switch_event.c:305
>> pop = 0x17cf600
>> event = 0x17cf600
>> queue = 0x17bdb38
>> index = 0
>> my_id = 0
>> __func__ = "switch_event_thread"
>> #3 0x00007fce6f910c01 in dummy_worker (opaque=0x1bd5028) at
>> threadproc/unix/thread.c:138
>> thread = 0x1bd5028
>> #4 0x00007fce6ec5d3ba in start_thread () from /lib/libpthread.so.0
>> No symbol table info available.
>> #5 0x00007fce6f59bfcd in clone () from /lib/libc.so.6
>> No symbol table info available.
>> #6 0x0000000000000000 in ?? ()
>> No symbol table info available.
>> (gdb)
>>
>>
>> New info: for the shutdown issue (a different one) I've found that
>> when
>> I don't load mod_portaudio, there is no segfault on shutdown, it tears
>> down everything cleanly. For the fshost issue the same did not have
>> any
>> effect.
>> Is there any know practice how to debug such thing?
>>
>> I'll keep working on these issues...
>>
>> Regards,
>> Tamas
>>
>>
>> Anthony Minessale írta:
>>
>>> look in switch.c
>>>
>>> we do it when you say "fsctl shutdown restart" and it works fine over
>>> and over.
>>>
>>>
>>>
>>> On Wed, Jul 1, 2009 at 5:52 PM, Tamas <jalsot at gmail.com
>>> <mailto:jalsot at gmail.com>> wrote:
>>>
>>> Hello,
>>>
>>> I'm trying to embed FS in a C application where I should have to
>>> restart
>>> the whole stuff (core) in one process/thread, however it
>>> crashes. I
>>> assume, something is not freed up before the new startup. I've
>>> used
>>> mrene's fshost example to reproduce the issue:
>>>
>>> Index: contrib/mrene/fshost/main.c
>>>
>>> ===================================================================
>>> --- contrib/mrene/fshost/main.c (revision 14092)
>>> +++ contrib/mrene/fshost/main.c (working copy)
>>> -82,7 +82,34 @@
>>>
>>> ret = system(buf);
>>> }
>>> +
>>> +
>>> + /* Here I start my 2nd start */
>>> +
>>> + /* Initialize libs & globals */
>>> + printf("Initializing globals...\n");
>>> + switch_core_setrlimits();
>>> + switch_core_set_globals();
>>>
>>> + /* If you need to override configuration directories, you
>>> need to
>>> change them in the SWITCH_GLOBAL_dirs global structure */
>>> + printf("Initializing core...\n");
>>> + /* Initialize the core and load modules, that will startup FS
>>> completely */
>>> + if (switch_core_init_and_modload(flags, console, &err) !=
>>> SWITCH_STATUS_SUCCESS) {
>>> + fprintf(stderr, "Failed to initialize FreeSWITCH's core:
>>> %s\n",
>>> err);
>>> + return 1;
>>> + }
>>> +
>>> + printf("Everything OK, Entering runtime loop.\n");
>>> +
>>> + fflush(stdout);
>>> +
>>> + /* Go into the runtime loop. If the argument is true, this
>>> basically sets runtime.running = 1 and loops while that is set
>>> + * If its false, it initializes the libedit for the
>>> console, then
>>> does the same thing
>>> + */
>>> + switch_core_runtime_loop(!console);
>>> +
>>> + /* When the runtime loop exits, its time to shutdown */
>>> + destroy_status = switch_core_destroy();
>>> return ret;
>>> }
>>>
>>> -95,4 +122,4 @@
>>> * End:
>>> * For VIM:
>>> * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
>>> - */
>>> \ No newline at end of file
>>> + */
>>>
>>>
>>> Here are some gdb backtraces:
>>>
>>> (gdb) bt
>>> #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at misc/apr_queue.c:215
>>> #1 0x00007fb418c0464a in switch_queue_trypush
>>> (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98,
>>> obj=0x12b8398) at src/switch_event.c:305
>>> #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at
>>> threadproc/unix/thread.c:138
>>> #4 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> #5 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> #6 0x0000000000000000 in ?? ()
>>> (gdb) bt full
>>> #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at misc/apr_queue.c:215
>>> rv = 0
>>> #1 0x00007fb418c0464a in switch_queue_trypush
>>> (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> s = 0
>>> #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98,
>>> obj=0x12b8398) at src/switch_event.c:305
>>> pop = 0x12b4b60
>>> event = 0x12b4b60
>>> queue = 0x12b8398
>>> index = 0
>>> my_id = 0
>>> __func__ = "switch_event_thread"
>>> #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at
>>> threadproc/unix/thread.c:138
>>> thread = 0x1663a98
>>> #4 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #5 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> No symbol table info available.
>>> #6 0x0000000000000000 in ?? ()
>>> No symbol table info available.
>>>
>>>
>>> (gdb) thread apply all bt
>>>
>>> Thread 5 (Thread 31286):
>>> #0 0x00007fb41892c742 in select () from /lib/libc.so.6
>>> #1 0x00007fb418caab2a in apr_sleep (t=100000) at time/unix/
>>> time.c:246
>>> #2 0x00007fb418c7aba5 in do_sleep (t=100000) at src/
>>> switch_time.c:109
>>> #3 0x00007fb418c7ad95 in switch_sleep (t=100000) at
>>> src/switch_time.c:178
>>> #4 0x00007fb418c16b75 in pool_thread (thread=0x1417ff8,
>>> obj=0x0) at
>>> src/switch_core_memory.c:531
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1417ff8) at
>>> threadproc/unix/thread.c:138
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> #8 0x0000000000000000 in ?? ()
>>>
>>> Thread 4 (Thread 31264):
>>> #0 0x00007fb417ffbbc5 in __lll_unlock_wake () from
>>> /lib/libpthread.so.0
>>> #1 0x00007fb417ff85c9 in _L_unlock_56 () from /lib/
>>> libpthread.so.0
>>> #2 0x00007fb417ff8206 in __pthread_mutex_unlock_usercnt () from
>>> /lib/libpthread.so.0
>>> #3 0x00007fb418ca12de in apr_thread_mutex_unlock
>>> (mutex=0x12b83d8) at
>>> locks/unix/thread_mutex.c:121
>>> #4 0x00007fb418c94b78 in apr_queue_trypush (queue=0x12b8398,
>>> data=0x12b4b60) at misc/apr_queue.c:242
>>> #5 0x00007fb418c0464a in switch_queue_trypush (queue=0x12b8398,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> #6 0x00007fb418c3dfe8 in switch_event_fire_detailed
>>> (file=0x7fb418d55ce0 "src/switch_xml.c", func=0x7fb418d562f0
>>> "switch_xml_open_root", line=1918, event=0x7fff211d0a58,
>>> user_data=0x0)
>>> at src/switch_event.c:1128
>>> #7 0x00007fb418c76a66 in switch_xml_open_root (reload=0 '\0',
>>> err=0x7fff211d1110) at src/switch_xml.c:1918
>>> #8 0x00007fb418c76b5e in switch_xml_init (pool=0x126aff8,
>>> err=0x7fff211d1110) at src/switch_xml.c:1945
>>> #9 0x00007fb418c2d78f in switch_core_init (flags=1,
>>> console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1231
>>> #10 0x00007fb418c2e02b in switch_core_init_and_modload (flags=1,
>>> console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1422
>>> #11 0x0000000000400ed7 in main (argc=1, argv=0x7fff211d1628) at
>>> main.c:97
>>>
>>> Thread 3 (Thread 31288):
>>> #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from
>>> /lib/libpthread.so.0
>>> #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x14dbb08,
>>> mutex=0x14dbab8) at locks/unix/thread_cond.c:68
>>> #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x14dba78,
>>> data=0x7fb41676c0b8) at misc/apr_queue.c:276
>>> #3 0x00007fb418c045ca in switch_queue_pop (queue=0x14dba78,
>>> data=0x7fb41676c0b8) at src/switch_apr.c:902
>>> #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663ac8,
>>> obj=0x14dba78) at src/switch_event.c:289
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663ac8) at
>>> threadproc/unix/thread.c:138
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> #8 0x0000000000000000 in ?? ()
>>>
>>> Thread 2 (Thread 31289):
>>> #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from
>>> /lib/libpthread.so.0
>>> #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x159fb18,
>>> mutex=0x159fac8) at locks/unix/thread_cond.c:68
>>> #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x159fa88,
>>> data=0x7fb4167a80b8) at misc/apr_queue.c:276
>>> #3 0x00007fb418c045ca in switch_queue_pop (queue=0x159fa88,
>>> data=0x7fb4167a80b8) at src/switch_apr.c:902
>>> #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663af8,
>>> obj=0x159fa88) at src/switch_event.c:289
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663af8) at
>>> threadproc/unix/thread.c:138
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> #8 0x0000000000000000 in ?? ()
>>>
>>> Thread 1 (Thread 31287):
>>> #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at misc/apr_queue.c:215
>>> #1 0x00007fb418c0464a in switch_queue_trypush
>>> (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98,
>>> obj=0x12b8398) at src/switch_event.c:305
>>> #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at
>>> threadproc/unix/thread.c:138
>>> #4 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> #5 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> #6 0x0000000000000000 in ?? ()
>>>
>>> (gdb) thread apply all bt full
>>>
>>> Thread 5 (Thread 31286):
>>> #0 0x00007fb41892c742 in select () from /lib/libc.so.6
>>> No symbol table info available.
>>> #1 0x00007fb418caab2a in apr_sleep (t=100000) at time/unix/
>>> time.c:246
>>> tv = {tv_sec = 0, tv_usec = 88462}
>>> #2 0x00007fb418c7aba5 in do_sleep (t=100000) at src/
>>> switch_time.c:109
>>> No locals.
>>> #3 0x00007fb418c7ad95 in switch_sleep (t=100000) at
>>> src/switch_time.c:178
>>> No locals.
>>> #4 0x00007fb418c16b75 in pool_thread (thread=0x1417ff8,
>>> obj=0x0) at
>>> src/switch_core_memory.c:531
>>> len = 0
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1417ff8) at
>>> threadproc/unix/thread.c:138
>>> thread = 0x1417ff8
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> No symbol table info available.
>>> #8 0x0000000000000000 in ?? ()
>>> No symbol table info available.
>>>
>>> Thread 4 (Thread 31264):
>>> #0 0x00007fb417ffbbc5 in __lll_unlock_wake () from
>>> /lib/libpthread.so.0
>>> No symbol table info available.
>>> #1 0x00007fb417ff85c9 in _L_unlock_56 () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #2 0x00007fb417ff8206 in __pthread_mutex_unlock_usercnt () from
>>> /lib/libpthread.so.0
>>> No symbol table info available.
>>> #3 0x00007fb418ca12de in apr_thread_mutex_unlock
>>> (mutex=0x12b83d8) at
>>> locks/unix/thread_mutex.c:121
>>> status = 0
>>> #4 0x00007fb418c94b78 in apr_queue_trypush (queue=0x12b8398,
>>> data=0x12b4b60) at misc/apr_queue.c:242
>>> rv = 0
>>> #5 0x00007fb418c0464a in switch_queue_trypush (queue=0x12b8398,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> s = 0
>>> #6 0x00007fb418c3dfe8 in switch_event_fire_detailed
>>> (file=0x7fb418d55ce0 "src/switch_xml.c", func=0x7fb418d562f0
>>> "switch_xml_open_root", line=1918, event=0x7fff211d0a58,
>>> user_data=0x0)
>>> at src/switch_event.c:1128
>>> was = 0
>>> index = 0
>>> __PRETTY_FUNCTION__ = "switch_event_fire_detailed"
>>> __func__ = "switch_event_fire_detailed"
>>> #7 0x00007fb418c76a66 in switch_xml_open_root (reload=0 '\0',
>>> err=0x7fff211d1110) at src/switch_xml.c:1918
>>> event = 0x12b4b60
>>> path_buf =
>>> "/opt/freeswitch/conf/freeswitch.xml
>>> \0\0\0\0\0\340\33\"\1\0\0\0\0\0\320\34\31\264\177\0\0)'\214\30\264\177\0\0\6\0\0\0\b\0\0\1\200\247\273\30\264\177\0\0\0\0\0\0\0\0\0\0\340\33\"\1\0\0\0\0O\0\0\0\0\0\0\0\271\24\214\0\0\4\0\0`\6\35!\377\177\0\0@\16\35!\377\177\0\0\340\33\"\1\0\0\0\0\0\272\273\30\264\177\0\0p\r\35!\377\177\0\0`\v@\0\0\0\0\0
>>> \26\35!\377\177", '\0' <repeats 18 times>,
>>> "v\202\214\30\264\177\0\0\71\0\0\0\0\0\0\0\224\t
>>> \307
>>> \30
>>> \264
>>> \177
>>> \0
>>> \0
>>> \65
>>> \2
>>> \0
>>> \0
>>> \60
>>> \0
>>> \0
>>> \0
>>> \200
>>> \0
>>> \0
>>> \0\377\177\0\0\6\0\325\30\264\177\0\0\263\352\16\0\377\177\0\0\320\v
>>> \35!\377"...
>>> hasmain = 0 '\0'
>>> errcnt = 0 '\0'
>>> new_main = 0x1221ca0
>>> r = 0x0
>>> __func__ = "switch_xml_open_root"
>>> #8 0x00007fb418c76b5e in switch_xml_init (pool=0x126aff8,
>>> err=0x7fff211d1110) at src/switch_xml.c:1945
>>> xml = 0x12b8338
>>> __PRETTY_FUNCTION__ = "switch_xml_init"
>>> ---Type <return> to continue, or q <return> to quit---
>>> #9 0x00007fb418c2d78f in switch_core_init (flags=1,
>>> console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1231
>>> uuid = {data = "\0\0\0\0\0\0\0\0\200\247\273\30\264\177\0"}
>>> guess_ip = "::1\0\61\66\70.69.69", '\0' <repeats 187
>>> times>"\331,
>>> _
>>> \222
>>> \30
>>> \264
>>> \177
>>> \0\0\0\0\0\0\0\0\0\0\25\0\0\0\0\0\0\0\0\320\34\31\264\177\0\0\25",
>>> '\0' <repeats 15 times>, "J\30\214\30\264\177\0"
>>> dir_path = 0x0
>>> mask = 16777215
>>> in = {s_addr = 16777215}
>>> __PRETTY_FUNCTION__ = "switch_core_init"
>>> #10 0x00007fb418c2e02b in switch_core_init_and_modload (flags=1,
>>> console=SWITCH_TRUE, err=0x7fff211d1110) at src/switch_core.c:1422
>>> event = 0x400b60
>>> __func__ = "switch_core_init_and_modload"
>>> #11 0x0000000000400ed7 in main (argc=1, argv=0x7fff211d1628) at
>>> main.c:97
>>> flags = 1
>>> err = 0x7fb418d56314 "Success"
>>> console = SWITCH_TRUE
>>> destroy_status = SWITCH_STATUS_SUCCESS
>>> ret = 0
>>> __PRETTY_FUNCTION__ = "main"
>>>
>>> Thread 3 (Thread 31288):
>>> #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from
>>> /lib/libpthread.so.0
>>> No symbol table info available.
>>> #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x14dbb08,
>>> mutex=0x14dbab8) at locks/unix/thread_cond.c:68
>>> rv = 0
>>> #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x14dba78,
>>> data=0x7fb41676c0b8) at misc/apr_queue.c:276
>>> rv = 0
>>> #3 0x00007fb418c045ca in switch_queue_pop (queue=0x14dba78,
>>> data=0x7fb41676c0b8) at src/switch_apr.c:902
>>> No locals.
>>> #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663ac8,
>>> obj=0x14dba78) at src/switch_event.c:289
>>> pop = 0x0
>>> event = 0x0
>>> queue = 0x14dba78
>>> index = 0
>>> my_id = 1
>>> __func__ = "switch_event_thread"
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663ac8) at
>>> threadproc/unix/thread.c:138
>>> thread = 0x1663ac8
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> No symbol table info available.
>>> #8 0x0000000000000000 in ?? ()
>>> No symbol table info available.
>>>
>>> Thread 2 (Thread 31289):
>>> #0 0x00007fb417ff92e9 in pthread_cond_wait@@GLIBC_2.3.2 () from
>>> /lib/libpthread.so.0
>>> No symbol table info available.
>>> #1 0x00007fb418ca13ef in apr_thread_cond_wait (cond=0x159fb18,
>>> mutex=0x159fac8) at locks/unix/thread_cond.c:68
>>> rv = 0
>>> #2 0x00007fb418c94c1f in apr_queue_pop (queue=0x159fa88,
>>> data=0x7fb4167a80b8) at misc/apr_queue.c:276
>>> rv = 0
>>> #3 0x00007fb418c045ca in switch_queue_pop (queue=0x159fa88,
>>> data=0x7fb4167a80b8) at src/switch_apr.c:902
>>> No locals.
>>> #4 0x00007fb418c3ba5e in switch_event_thread (thread=0x1663af8,
>>> obj=0x159fa88) at src/switch_event.c:289
>>> ---Type <return> to continue, or q <return> to quit---
>>> pop = 0x0
>>> event = 0x0
>>> queue = 0x159fa88
>>> index = 0
>>> my_id = 2
>>> __func__ = "switch_event_thread"
>>> #5 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663af8) at
>>> threadproc/unix/thread.c:138
>>> thread = 0x1663af8
>>> #6 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #7 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> No symbol table info available.
>>> #8 0x0000000000000000 in ?? ()
>>> No symbol table info available.
>>>
>>> Thread 1 (Thread 31287):
>>> #0 0x00007fb418c94a7f in apr_queue_trypush (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at misc/apr_queue.c:215
>>> rv = 0
>>> #1 0x00007fb418c0464a in switch_queue_trypush
>>> (queue=0x7fb4168e45a8,
>>> data=0x12b4b60) at src/switch_apr.c:931
>>> s = 0
>>> #2 0x00007fb418c3bab8 in switch_event_thread (thread=0x1663a98,
>>> obj=0x12b8398) at src/switch_event.c:305
>>> pop = 0x12b4b60
>>> event = 0x12b4b60
>>> queue = 0x12b8398
>>> index = 0
>>> my_id = 0
>>> __func__ = "switch_event_thread"
>>> #3 0x00007fb418ca8c01 in dummy_worker (opaque=0x1663a98) at
>>> threadproc/unix/thread.c:138
>>> thread = 0x1663a98
>>> #4 0x00007fb417ff53ba in start_thread () from /lib/
>>> libpthread.so.0
>>> No symbol table info available.
>>> #5 0x00007fb418933fcd in clone () from /lib/libc.so.6
>>> No symbol table info available.
>>> #6 0x0000000000000000 in ?? ()
>>> No symbol table info available.
>>>
>>>
>>> FS svn r14092, gcc-4.3.3, x86_64
>>>
>>> Any idea what should I add to free up everything after shutdown
>>> and lets
>>> start with "blank list"?
>>>
>>> Thanks in advance,
>>> Tamas
>>>
>>>
>>> _______________________________________________
>>> 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/
>>>
>>> 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>
>>> iax:guest at conference.freeswitch.org/888
>>> <http://iax:guest@conference.freeswitch.org/888>
>>> googletalk:conf+888 at conference.freeswitch.org
>>> <mailto:googletalk%3Aconf%2B888 at conference.freeswitch.org>
>>> pstn:213-799-1400
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>> _______________________________________________
>> 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
>>
>
>
> _______________________________________________
> 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