Opened 13 years ago

Last modified 13 years ago

#1316 closed defect

Assertion when TURN session is deallocated prematurely (thanks Tony Jago Million for the report) — at Version 1

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.12
Component: pjnath Version: 1.x-branch
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp)

TURN session may get deallocated prematurely for several reasons, for example if iPhone application is suspended in the background and unable to refresh the allocation in timely manner.

Sample 1 of the assertion:

pjnath/turn_sock.c:433:
PJ_ASSERT_RETURN(turn_sock && addr && addr_len, PJ_EINVAL);

Stack trace:
0   libsystem_kernel.dylib        	0x3558fa1c __pthread_kill + 8
1   libsystem_c.dylib             	0x356663b4 pthread_kill + 52
2   libsystem_c.dylib             	0x3565ebf8 abort + 72
3   libsystem_c.dylib             	0x3568c6d4 __assert_rtn + 140
4   bababoo                       	0x001aeefc pj_turn_sock_sendto + 44
5   bababoo                       	0x001a5cce pj_ice_strans_sendto + 194
6   bababoo                       	0x0019ba34 transport_send_rtp + 72
7   bababoo                       	0x0019d398 transport_send_rtp + 120

Sample 2:

pjnath/turn_sock.c:622:
pj_assert(!"We should shutdown gracefully");

Stack trace:
#0  0x358cda1c in __pthread_kill ()
#1  0x359a43ba in pthread_kill ()
#2  0x3599cbfe in abort ()
#3  0x359ca6da in __assert_rtn ()
#4  0x001af292 in turn_on_send_pkt ()
#5  0x001ad70c in stun_on_send_msg ()
#6  0x001ab702 in stun_tsx_on_send_msg ()
#7  0x001acdb0 in tsx_transmit_msg ()
#8  0x001acfc2 in pj_stun_client_tsx_send_msg ()
#9  0x001aba40 in pj_stun_session_send_msg ()
#10 0x001adfd0 in pj_turn_session_set_perm ()
#11 0x001aed72 in pj_turn_session_sendto ()
#12 0x001aef36 in pj_turn_sock_sendto ()
#13 0x001a5cf4 in pj_ice_strans_sendto ()
#14 0x0019ba5a in transport_send_rtp ()

Change History (1)

comment:1 Changed 13 years ago by bennylp

  • Description modified (diff)
Note: See TracTickets for help on using tickets.