Custom Query (2195 matches)
Results (103 - 105 of 2195)
Ticket
|
Resolution
|
Summary
|
Owner
|
Reporter
|
#2161 |
fixed
|
Avoid deadlock triggered by incoming message when transport is being shutdown
|
bennylp
|
riza
|
Description |
It is reported that a deadlock might occur when handling IP change / pjsua_handle_ip_change() is called.
Scenario:
- [MainThread] Transport is being shutdown e.g: by pjsua_handle_ip_change() -> pjsip_transport_shutdown()
- at the start it will lock the transport (tp->lock)
- [pjsua_0] Incoming new INVITE message
- lock pjsua on pjsua_call_on_incoming()
- try to lock transport on tsx_update_transport() -> pjsip_transport_add_state_listener()
- [MainThread]
- try to lock pjsua_acc_on_tp_state_changed() >> deadlock
|
#2160 |
fixed
|
Fix stuck issue in ioqueue when detaching UDP media transport
|
nanang
|
ming
|
Description |
The issue is caused by two things:
- Due to #2097, pjmedia_transport_media_stop() for UDP transport will call pj_ioqueue_post_completion(). This will trigger on_read_complete() callback, i.e. on_rx_rtp() which will call pj_ioqueue_recvfrom(). So the read operations never really stop.
- Ioqueue itself never checks when an op_key is already in the list. Thus, when the media transport is restarted, it will call pj_ioqueue_recvfrom() again. Calling recv() with the same op_key will cause the list to be in a bad state (i.e. the element's next and prev pointers will lose track of its neighbours, hence causing the list to be uniterable). Thus, when later calling pjmedia_transport_detach(), and UDP media transport calling pj_ioqueue_post_completion() for its pending write_op, the function may get stuck when iterating the read list.
|
#2159 |
fixed
|
Add synchronization for Endpoint::libRegisterThread()
|
bennylp
|
ming
|
Description |
Currently libRegisterThread() is not thread-safe. The access to the thread descriptor map needs to be protected in order to avoid data race.
|
Note: See
TracQuery
for help on using queries.