Richard Mudgett
9cd8a1df79
res_rtp_asterisk.c: Fix TURN deadlock by using ICE session group lock.
...
When a message is received on the TURN socket, the code processing the
message needs to call into the ICE/STUN session for further processing.
This code path locks the TURN group lock then the ICE/STUN group lock. In
another thread an ICE/STUN timer can fire off to send a keep alive message
over the TURN socket. In this code path, the ICE/STUN group lock is
obtained then the TURN group lock is obtained to send the packet. A
classic deadlock case if the group locks are not the same.
* Made TURN get created using the ICE/STUN session's group lock.
NOTE: I was originally concerned that the ICE/STUN session can get
recreated by ice_reset_session() for an event like RTCP multiplexing
causing a change during SDP negotiation. In this case the TURN group lock
would become different. However, TURN is also recreated as part of the
ICE/STUN recreation in ice_create() when all known ICE candidates are
added to the new ICE session. While the ICE/STUN and TURN sessions are
being recreated there is a period where the group locks could be
different.
ASTERISK-27023 #close
Patches:
res_rtp_asterisk-turn-deadlock-fix.patch (license #6502 )
patch uploaded by Michael Walton (modified)
Change-Id: Ic870edb99ce4988a8c8eb6e678ca7f19da1432b9
2017-07-06 16:14:48 -05:00
..
2017-01-04 14:06:20 -06:00
2017-04-16 18:59:54 -06:00
2017-01-04 14:06:20 -06:00
2017-07-05 16:08:46 -05:00
2016-10-27 09:53:55 -04:00
2017-05-26 12:15:42 -04:00
2017-01-26 17:06:40 -06:00
2017-05-30 16:09:50 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-05-26 09:25:51 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-04-12 15:57:21 -06:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-06-15 19:34:03 -05:00
2017-04-12 15:57:21 -06:00
2016-11-29 13:35:26 -02:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2017-02-10 18:04:41 -05:00
2017-02-21 10:53:17 -06:00
2017-02-22 17:37:52 -06:00
2017-02-21 10:53:17 -06:00
2017-03-01 07:27:50 -06:00
2017-05-25 10:02:42 +02:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2017-06-16 07:53:22 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-05-23 10:57:57 -05:00
2017-05-23 10:57:57 -05:00
2016-12-08 11:47:30 +00:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-03-21 13:40:29 -06:00
2017-05-18 16:36:21 -05:00
2017-04-24 13:22:48 -05:00
2017-04-12 15:57:39 -06:00
2016-11-15 22:25:14 +02:00
2017-04-12 15:57:21 -06:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2017-05-16 14:25:23 +00:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-08-21 18:56:01 -05:00
2016-10-27 09:53:55 -04:00
2017-01-04 14:06:20 -06:00
2016-11-15 22:25:14 +02:00
2017-01-24 11:25:19 -06:00
2017-02-20 22:24:31 -06:00
2017-04-26 15:32:11 -05:00
2017-03-28 15:51:21 -06:00
2017-06-16 11:25:07 -05:00
2016-12-31 20:00:46 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-03-15 13:52:15 +00:00
2016-09-09 17:13:02 -05:00
2017-02-15 13:11:46 -06:00
2017-02-23 16:23:53 -06:00
2016-10-27 09:53:55 -04:00
2017-03-21 08:45:37 -06:00
2017-06-22 16:01:52 -05:00
2017-04-12 15:57:21 -06:00
2017-04-12 15:57:21 -06:00
2017-04-28 11:04:57 -05:00
2017-04-12 15:57:21 -06:00
2017-04-12 15:57:21 -06:00
2016-09-09 17:13:02 -05:00
2017-06-16 11:25:07 -05:00
2017-06-16 11:25:07 -05:00
2017-04-07 08:44:49 -05:00
2017-06-14 11:16:54 -05:00
2017-06-13 14:28:21 -05:00
2016-11-10 16:59:41 -05:00
2017-02-08 11:54:39 -06:00
2017-06-29 07:57:01 -06:00
2017-04-12 15:57:21 -06:00
2017-06-28 18:36:29 +00:00
2017-06-28 18:36:29 +00:00
2017-06-28 18:36:29 +00:00
2016-09-14 09:53:33 -05:00
2017-06-09 09:55:44 -05:00
2017-06-16 11:25:07 -05:00
2017-07-05 14:17:23 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-02-01 17:33:41 -06:00
2017-07-06 16:14:48 -05:00
2017-06-06 10:55:04 -05:00
2017-04-27 19:08:05 -05:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-02-13 11:33:15 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-05-26 12:15:42 -04:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2017-04-12 15:57:21 -06:00
2016-10-27 09:53:55 -04:00
2017-04-12 15:57:21 -06:00
2017-06-16 15:08:45 -05:00
2017-04-12 15:57:21 -06:00
2017-04-14 16:55:03 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-03-29 06:57:49 -05:00
2016-09-25 13:40:23 -05:00