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.

Change History (0)

Note: See TracTickets for help on using tickets.