[Home]

Summary:ASTERISK-27212: bridge_softmix: Quickly joining/leaving may cause video stream to remain in SFU
Reporter:Richard Mudgett (rmudgett)Labels:pjsip
Date Opened:2017-08-22 11:44:41Date Closed:2017-08-23 14:07:33
Priority:MajorRegression?
Status:Closed/CompleteComponents:
Versions:15.0.0-beta1 Frequency of
Occurrence
Occasional
Related
Issues:
Environment:Attachments:( 0) backtrace_20170818_full.txt
( 1) backtrace_20170818.txt
Description:When a participant quickly joins/leaves a conference bridge in SFU there seems to be a race condition where the renegotiation to add the newly joined participant occurs for anyone still in the bridge but the renegotiation to remove the stream may not occur. This causes a "Waiting For Video" to show up on the existing participants indefinitely.

There are several problems:
# The main problem is a deadlock between the bridge_channel and channel locks.  Also the bridge lock needs to be held for other renentrancy reasons concerning the bridge struct members.
# A FRACK occasionally happens when the stream topology is changing.
# A crash can occasionally happen while the SDP is renegotiated.
Comments:By: Friendly Automation (friendly-automation) 2017-08-23 14:07:35.051-0500

Change 6271 merged by Jenkins2:
channel: Fix topology API locking.

[https://gerrit.asterisk.org/6271|https://gerrit.asterisk.org/6271]

By: Friendly Automation (friendly-automation) 2017-08-23 14:19:13.650-0500

Change 6275 merged by Jenkins2:
channel: Fix topology API locking.

[https://gerrit.asterisk.org/6275|https://gerrit.asterisk.org/6275]

By: Friendly Automation (friendly-automation) 2017-08-23 14:34:25.831-0500

Change 6272 merged by Jenkins2:
bridge: Fix softmix bridge deadlock.

[https://gerrit.asterisk.org/6272|https://gerrit.asterisk.org/6272]

By: Friendly Automation (friendly-automation) 2017-08-23 14:34:26.628-0500

Change 6273 merged by Jenkins2:
bridge_channel.c: Fix FRACK when mapping frames to the bridge.

[https://gerrit.asterisk.org/6273|https://gerrit.asterisk.org/6273]

By: Friendly Automation (friendly-automation) 2017-08-23 14:47:54.695-0500

Change 6276 merged by Jenkins2:
bridge: Fix softmix bridge deadlock.

[https://gerrit.asterisk.org/6276|https://gerrit.asterisk.org/6276]

By: Friendly Automation (friendly-automation) 2017-08-23 14:47:56.092-0500

Change 6277 merged by Jenkins2:
bridge_channel.c: Fix FRACK when mapping frames to the bridge.

[https://gerrit.asterisk.org/6277|https://gerrit.asterisk.org/6277]

By: Friendly Automation (friendly-automation) 2017-08-23 14:50:56.691-0500

Change 6279 merged by Joshua Colp:
channel: Fix topology API locking.

[https://gerrit.asterisk.org/6279|https://gerrit.asterisk.org/6279]

By: Friendly Automation (friendly-automation) 2017-08-23 14:51:13.014-0500

Change 6280 merged by Joshua Colp:
bridge: Fix softmix bridge deadlock.

[https://gerrit.asterisk.org/6280|https://gerrit.asterisk.org/6280]

By: Friendly Automation (friendly-automation) 2017-08-23 14:51:14.418-0500

Change 6281 merged by Joshua Colp:
bridge_channel.c: Fix FRACK when mapping frames to the bridge.

[https://gerrit.asterisk.org/6281|https://gerrit.asterisk.org/6281]

By: Friendly Automation (friendly-automation) 2017-08-23 14:51:23.822-0500

Change 6282 merged by Joshua Colp:
res_pjsip_session.c: Fix crash when declining an active stream.

[https://gerrit.asterisk.org/6282|https://gerrit.asterisk.org/6282]

By: Friendly Automation (friendly-automation) 2017-08-23 14:51:29.188-0500

Change 6278 merged by Joshua Colp:
res_pjsip_session.c: Fix crash when declining an active stream.

[https://gerrit.asterisk.org/6278|https://gerrit.asterisk.org/6278]

By: Friendly Automation (friendly-automation) 2017-08-23 14:51:33.731-0500

Change 6274 merged by Joshua Colp:
res_pjsip_session.c: Fix crash when declining an active stream.

[https://gerrit.asterisk.org/6274|https://gerrit.asterisk.org/6274]