Opened 13 years ago
Last modified 13 years ago
#1451 closed defect
Deadlock caused by conflicting locking order in ICE and ioqueue (thanks Claudio De Angelis for the report) — at Initial Version
Reported by: | nanang | Owned by: | bennylp |
---|---|---|---|
Priority: | normal | Milestone: | release-1.14 |
Component: | pjnath | Version: | 1.x-branch |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description
Deadlock scenario:
Thread 1:
- packet arrived
- ioqueue_dispatch_read_event() acquires stunsock key mutex
- pj_ice_sess_on_rx_pkt() is about to acquire ICE session mutex
Thread 2:
- about to send packet
- pj_ice_sess_send_data() acquires ICE session mutex
- in pj_ioqueue_sendto(), pj_sock_sendto() fails with EWOULDBLOCK
- to save the sending state, pj_ioqueue_sendto() needs to acquire
stunsock key mutex.
Note: See
TracTickets for help on using
tickets.