Changes between Initial Version and Version 2 of Ticket #2009
- Timestamp:
- Jun 14, 2017 5:58:05 AM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #2009 – Description
initial v2 1 Reported that the there is possibility of ICE objects are destroyed while DNS resolution of TURN server is on progress, so crash will happen when the resolution callback is invoked. 2 3 ==== Stack trace ==== 4 {{{1 There are two synchronization issues in ICE: 2 1. ICE objects are destroyed while DNS resolution of TURN server is on progress, so crash will happen when the resolution callback is invoked. 3 Stack trace: 4 {{{ 5 5 Exception Type: SIGSEGV 6 6 Exception Codes: SEGV_MAPERR at 0x321e07eb52803ca1 … … 14 14 6 0x1011ae078 dns_callback + 3272 15 15 7 0x1011a698c on_read_complete + 1308 16 }}}16 }}} 17 17 18 Thank you Qinxi Chen for the report. 18 2. Race condition between PJMEDIA transport ICE's {{{pjmedia_transport_close()}}} and ICE stream transport's {{{sess_init_update()}}}: 19 1. {{{sess_init_update()}}} thread is suspended after evaluating {{{destroy_req}}} that is equal to {{{PJ_FALSE}}} 20 1. {{{pjmedia_transport_close()}}} is invoked (from another thread, e.g: SIP or UI thread), then transport ICE is destroyed 21 1. when {{{sess_init_update()}}} thread is resumed and invoking callback to transport ICE, crash occurs as transport ICE is destroyed already. 22 23 Thanks Qinxi Chen and Alexei Kolomiets for the report. 24 25