Opened 15 years ago
Last modified 15 years ago
#689 closed defect
Deadlock caused by ICE media transport (thanks Alain Totouom) — at Initial Version
Reported by: | bennylp | Owned by: | bennylp |
---|---|---|---|
Priority: | normal | Milestone: | release-1.1 |
Component: | pjnath | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description
The mutex locking in ICE transport may cause deadlock in application. Consider this scenario:
Thread 1:
- RTP packet arrives
- the pj_ice_sess_on_rx_pkt() is called
- ICE session's mutex is acquired
- ice->cb.on_rx_data() callback is called
- application acquires some application mutex B (e.g. conference bridge's mutex).
Thread 2:
- application acquires some application mutex B (e.g. conference bridge's mutex)
- RTP packet needs to be transmitted
- the pj_ice_sess_send_data() function is called
- thread is acquiring ICE session's mutex, and it will deadlock.
Note: See
TracTickets for help on using
tickets.