New issue
Advanced search Search tips

Issue 901787 link

Starred by 6 users

Issue metadata

Status: Fixed
Merged: issue webrtc:9540
Owner:
Closed: Dec 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 1
Type: Bug

Blocked on:
issue webrtc:9540



Sign in to add a comment

unified plan: answer SDP without a=mid is rejected

Project Member Reported by philipp....@googlemail.com, Nov 5

Issue description

Chrome Version: (copy from chrome://version)
OS: (e.g. Win10, MacOS 10.12, etc...)

What steps will reproduce the problem?
(1) go to http://jsfiddle.net/29npv3kd/1/
(2) observe the console

What is the expected result?
It still works? It works using plan-b

What happens instead?
The answer is rejected with a complaint about the order of m-lines not matching. Which is ironic, there is only a single one.

JSEP is quite clear on this at least, http://rtcweb-wg.github.io/jsep/#rfc.section.5.10
 If the m= section does not include a MID (i.e., the remote endpoint does not support the MID extension), generate a value for the RtpTransceiver mid property, following the guidance for "a=mid" mentioned in Section 5.2.1.


 
Cc: shampson@chromium.org
Labels: -Pri-3 M-72 Pri-2
Owner: steveanton@chromium.org
Status: Assigned (was: Untriaged)
This is also mentioned in the webrtc-pc spec referencing JSEP:

"Set transceiver's mid value to the mid of the corresponding media description. If the media description has no MID, and transceiver's mid is unset, generate a random value as described in [JSEP] (section 5.10.)."

Steve can you take a look or reassign?
Yes, this looks like a bug.
Blockedon: webrtc:9540
Labels: -Pri-2 Pri-3
I started a fix but ran into some problems. WIP here: https://webrtc-review.googlesource.com/c/src/+/109487

A lot of code assumes the SDP MID (content_name) is a unique identifier. Right now the place to generate the MID if a=mid is not present is relatively late. For example, transports have already been created (and they assume MID is a unique identifier).

Furthermore, according to JSEP the MID should always be generated in setRemoteDescription, even if one is already associated. I confirmed this is what Firefox implements (at least in the latest nightly). I'm not sure how to make our code work with that behavior, given that everything is indexed by MID.

Given the fix is quite involved, requires some risky refactoring, and the workaround is not too onerous, I'm going to bump the priority. Let me know if the assessment is inaccurate.
yeah, the workaround would be to parse the SDP (there are libraries for that) and backfill the mid from the localdescription before calling setRemoteDescription.

Probably worth documenting the current issues in the migration document -- unless you want me and inaki doing so ;-)
Labels: -M-72
5.3.1 also says "If and only if present in the offer, an "a=mid" line, as specified in [RFC5888], Section 9.1. The "mid" value MUST match that specified in the offer."

If I tweak the fiddle to set it as an offer instead it says "yay".
Is the concern a Unified Plan client offering to a client that ignores a=mid lines and answers without them?
I did not venture into the woods to find this one, there is still software out there that predates RFC 5888 and SDP takes care of negotiating all this.
Mergedinto: webrtc:9540
Status: Duplicate (was: Assigned)
Labels: -Pri-3 M-72 Merge-Request-72 OS-Android OS-Chrome OS-Fuchsia OS-Linux OS-Mac OS-Windows Pri-1
Status: Fixed (was: Duplicate)
Requesting merge to M72 for the WebRTC commits in #17 and #20 (see bugs.webrtc.org/9540). These are low-risk bugfixes to unblock the Unified Plan rollout in M72.
Project Member

Comment 10 by sheriffbot@chromium.org, Dec 20

Labels: -Merge-Request-72 Merge-Review-72 Hotlist-Merge-Review
This bug requires manual review: M72 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: govind@(Android), kariahda@(iOS), djmm@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Are these changes behind a flag? Are they well tested in canary?
Looks like the Chromium roll CLs are:

https://chromiumdash.appspot.com/commit/45e536a9674fabe334db2fe58c1f5cd0b9757425
https://chromiumdash.appspot.com/commit/947a70c1735706f398d8bc081640222ad4483232

Only the first has landed in Canary so far: Commit 45e536a9... initially landed in 73.0.3646.0
(The first is the bulk of the change, the second is just a small follow-up.)

These changes are not behind a flag, though they mostly affect 'unified-plan' which is behind an experiment.
Labels: -Merge-Review-72 Merge-Approved-72
Approving merge for M72. Branch:3626

Sign in to add a comment