Norman Franke wrote: > I've been experiencing a large number of crashes in PJSIP of late (using > the latest SVN head.) I never seemed to have these issues with 0.6. All > crashes seem all revolve around using the pools. The latest is here: What if you #define PJ_SAFE_POOL 1 in your config_site.h? This will not make the crash go away, but it will assert when the pool is destroyed more than once (btw I assume you enabled assertion in your build). cheers, -benny > #0 0x002556cc in pj_link_node at list_i.h:24 > #1 0x002558c4 in pj_list_erase at list_i.h:77 > #2 0x002891b0 in reset_pool at pool.c:239 > #3 0x002892b4 in pj_pool_destroy_int at pool.c:275 > #4 0x002c7510 in cpool_release_pool at pool_caching.c:233 > #5 0x00288b68 in pj_pool_release at pool_i.h:91 > #6 0x0025bfe0 in pjsip_endpt_release_pool at sip_endpoint.c:641 > #7 0x002adb34 in destroy_dialog at sip_dialog.c:115 > #8 0x002af820 in unregister_and_destroy_dialog at sip_dialog.c:700 > #9 0x002afd98 in pjsip_dlg_dec_lock at sip_dialog.c:831 > #10 0x002b2718 in pjsip_dlg_on_tsx_state at sip_dialog.c:1804 > #11 0x00263058 in mod_ua_on_tsx_state at sip_ua_layer.c:177 > #12 0x002b858c in tsx_set_state at sip_transaction.c:1081 > #13 0x002bc238 in tsx_on_state_completed_uac at sip_transaction.c:2780 > #14 0x002b830c in tsx_timer_callback at sip_transaction.c:1028 > #15 0x002a47b4 in pj_timer_heap_poll at timer.c:517 > #16 0x0025c070 in pjsip_endpt_handle_events2 at sip_endpoint.c:665 > #17 0x0026c93c in pjsua_handle_events at pjsua_core.c:1131 > #18 0x0026ad20 in worker_thread at pjsua_core.c:494 > #19 0x002584f4 in thread_main at os_core_unix.c:382 > #20 0x9002bd08 in _pthread_body > > Another (non-debug build, sadly. Seems to be about the same thing.) > > #0 0x00264fdc in pj_list_erase > #1 0x00288940 in reset_pool > #2 0x002889f0 in pj_pool_destroy_int > #3 0x002a97c8 in cpool_release_pool > #4 0x0029c008 in unregister_and_destroy_dialog > #5 0x0029c140 in pjsip_dlg_dec_lock > #6 0x002a1328 in tsx_set_state > #7 0x002a2cb8 in tsx_on_state_completed_uac > #8 0x002a11b4 in tsx_timer_callback > #9 0x00297224 in pj_timer_heap_poll > #10 0x0026820c in pjsip_endpt_handle_events2 > #11 0x0027082c in pjsua_handle_events > #12 0x00270888 in worker_thread > #13 0x00266e8c in thread_main > #14 0x9002b508 in _pthread_body > > From the first one: > > /* Internal */ > PJ_INLINE(void) pj_link_node(pj_list_type *prev, pj_list_type *next) > { > ((pj_list*)prev)->next = next; > ((pj_list*)next)->prev = prev; > } > > In this case, prev is null. My code never uses dialog pools. > > Any ideas? > > -Norman