New issue
Advanced search Search tips

Issue 822851 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Video freezes after multiple upgrade/downgrade when on audio call

Reported by manjuks1...@gmail.com, Mar 16 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36

Steps to reproduce the problem:
1. We have an internal webrtc app and we initiated 1-1 audio call
2. Upgrade the call to video and after few seconds downgrade to audio call
3. Repeat step 2 couple of times from one peer. Video and audio are good
4. Repeat step 2 from another peer. When the other peer upgrades to video, video freezes on the remote side

What is the expected behavior?
Both video and audio should be fine

What went wrong?
Video freezes and observed packet loss increasing steadily and bitsSentPerSecond also decreases.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 65.0.3325.162  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version:
 
graphs2-B-party.PNG
74.0 KB View Download
graphs1-B-party.PNG
82.9 KB View Download
webrtc_internals_dump_B_party.txt
4.9 MB View Download
A-party-Upgrade-downgrade-video.txt
4.7 MB View Download
Labels: Needs-Triage-M65

Comment 2 by guidou@chromium.org, Mar 19 2018

Cc: hbos@chromium.org
Labels: Triaged-ET Needs-Feedback
manjuks1991@ Thanks for the issue.

Request you to provide the URL where this issue can be reproduced, which will help in further triaging.

Thanks..

Comment 4 by psu...@gmail.com, Mar 20 2018

susan - the application is internal for now and cannot be shared.
If required we can provide any requested traces 

Comment 5 by hbos@chromium.org, Mar 21 2018

Creating a dump from chrome://webrtc-internals might help? Not sure.

Comment 6 by hbos@chromium.org, Mar 21 2018

Nevermind, I see you already did.

Comment 7 by hbos@chromium.org, Mar 21 2018

What APIs are involved in the steps to repro the problem?
Hi hbos,

What APIs are we looking for here? If it is standard WebRTC APIs, then below are the APIs used - 

1. navigator.getUserMedia
2. webrtc's createOffer/createAnswer
3. setLocalDescription/setRemoteDescription

Please let us know if you are looking for information on any specific API
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 26 2018

Cc: susan.boorgula@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 10 by hbos@chromium.org, Mar 26 2018

This could be a race between setRemoteDescription() and addStream()/addTrack(), a deadlock in WebRtcMediaStreamTrackAdapterMap. I've identified a problem with regards to another bug (813574).

You could see if the problem goes away if you to a setTimeout(() => {...}, 0); to delay adding the track to avoid the race.
Hi hbos,

We tried wrapping stream addition logic inside setTimeOut() with a delay of 0. This does not seem to work. We still observe the video freeze issue after 3-4 consecutive video upgrades

Comment 12 by hbos@chromium.org, Mar 27 2018

Thank you! On second though I don't think 0 is enough. Can you try with a larger delay like 500?

If this is a duplicate of https://crbug.com/813574 we should merge the fix into M65 as well.

Comment 13 by hbos@chromium.org, Mar 27 2018

Labels: Needs-Feedback
Status: Started (was: Unconfirmed)
Assuming this does not also delay the setRemoteDescription() logic so that there is a period of time between addTrack/addStream and setRemoteDescription.

Comment 14 by hbos@chromium.org, Mar 27 2018

Components: -Blink>WebRTC Blink>WebRTC>PeerConnection
Owner: hbos@chromium.org
Hi hbos,

We tried to delay adding the track/stream in promisified createAnswer() function, this results in losing the audio and video still freezes after 3-4 upgrade attempts.

Additionally, we also tried with lesser delay (250ms) and there is no change in behavior. 

Comment 16 by hbos@chromium.org, Apr 5 2018

Hi, can you check if this is this still reproducible in latest Canary which has a fix for a similar problem?

Sign in to add a comment