Opened 17 years ago
Last modified 17 years ago
#569 closed defect
Non-uniform locking order between SRTP & its member transport (e.g:ICE) may cause deadlock — at Version 1
Reported by: | nanang | Owned by: | nanang |
---|---|---|---|
Priority: | normal | Milestone: | release-1.0-rc1 |
Component: | pjmedia | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description (last modified by nanang)
Sample case:
- Worker thread is receiving an RTP packet, it gets the ICE lock and about to get the SRTP lock, other thread is trying to send an RTP packet, it successfully acquire the SRTP lock, but unable to acquire ICE lock since it is hold by the worker thread, deadlock.
Solution:
- Make the locking order between SRTP & its member transport uniform or independent.
Change History (1)
comment:1 Changed 17 years ago by nanang
- Description modified (diff)
- Summary changed from Non-uniform locking order between SRTP & ICE cause deadlock to Non-uniform locking order between SRTP & its member transport (e.g:ICE) may cause deadlock
Note: See
TracTickets for help on using
tickets.
In r2144: Updated SRTP locking to not guard member transport when sending packet; added separate tx_buffer for RTCP since tx_buffer is not guarded by SRTP lock anymore.
This should make the locking order between SRTP and its member transport uniform in receiving packet and independent in sending packet.