Changes between Initial Version and Version 2 of Ticket #1604


Ignore:
Timestamp:
Jan 31, 2013 7:29:57 AM (9 years ago)
Author:
nanang
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1604

    • Property Status changed from new to closed
    • Property Resolution changed from to fixed
  • Ticket #1604 – Description

    initial v2  
    11The double destructions can happen when two threads, executing pj_ice_strans_destroy() and ICE stream transport's sess_dec_ref(), at the same time. 
    22 
     3Scenario: 
     4 1. Thread 1 (worker thread) is entering sess_dec_ref() and successfully decreases the counter to zero, context switched to thread 2 before evaluating the destroy condition. 
     5 1. Thread 2 is entering pj_ice_strans_destroy() and setting destroy_req flag to TRUE, context switched back to thread 1 again. 
     6 1. Thread 1 sees destroy_req==TRUE, so ICE stream transport gets destroyed.  
     7 1. Thread 2 destroy the ICE stream transport again. 
     8 
    39Thanks Itay Bianco for the report.