Changes between Initial Version and Version 2 of Ticket #2009


Ignore:
Timestamp:
Jun 14, 2017 5:58:05 AM (8 years ago)
Author:
nanang
Comment:

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 {{{ 
     1There 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    {{{ 
    55Exception Type:  SIGSEGV 
    66Exception Codes: SEGV_MAPERR at 0x321e07eb52803ca1 
     
    14146   0x1011ae078 dns_callback + 3272 
    15157   0x1011a698c on_read_complete + 1308 
    16 }}} 
     16    }}} 
    1717 
    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 
     23Thanks Qinxi Chen and Alexei Kolomiets for the report. 
     24 
     25