Opened 14 years ago
Closed 14 years ago
#1247 closed defect (fixed)
Deadlock potential in sip_regc.c if sending fails (thank you Alejandro Orellana for the report)
Reported by: | bennylp | Owned by: | bennylp |
---|---|---|---|
Priority: | normal | Milestone: | release-1.10 |
Component: | pjsip | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description (last modified by bennylp)
Deadlock between sip_regc.c and PJSUA-LIB may occur when sending (un)registration message fails with immediate error, e.g. because the transport fails.
Sample stack trace:
Thread 0:
0 semaphore_wait_signal_trap + 8 1 semaphore_wait_signal + 2 2 pthread_mutex_lock + 256 3 pj_mutex_lock + 12 4 pj_lock_acquire + 8 5 pjsip_regc_register + 54 6 pjsua_acc_set_registration + 168 ..
Thread 1:
0 semaphore_wait_signal_trap + 8 1 semaphore_wait_signal + 2 2 pthread_mutex_lock + 256 3 pj_mutex_lock + 12 4 regc_cb + 46 5 call_callback + 46 6 tsx_callback + 604 7 mod_util_on_tsx_state + 48 8 tsx_set_state + 84 9 send_msg_callback + 418 10 stateless_send_transport_cb + 42 11 stateless_send_transport_cb + 360 12 stateless_send_resolver_callback + 98 13 pjsip_resolve + 198 14 pjsip_endpt_resolve + 14 15 pjsip_endpt_send_request_stateless + 122 16 tsx_send_msg + 366 17 tsx_on_state_null + 62 18 pjsip_tsx_send_msg + 48 19 pjsip_endpt_send_request + 144 20 pjsip_regc_send + 186 21 regc_refresh_timer_cb + 106 22 pj_timer_heap_poll + 112 ..
Change History (2)
comment:1 Changed 14 years ago by bennylp
- Description modified (diff)
comment:2 Changed 14 years ago by bennylp
- Resolution set to fixed
- Status changed from new to closed
Note: See
TracTickets for help on using
tickets.
(In [3545]) Fixed #1247: Deadlock potential in sip_regc.c if sending fails (thank you Alejandro Orellana for the report)