Closed
Bug 1375708
Opened 7 years ago
Closed 7 years ago
Netflix broken on Linux in Firefox 54
Categories
(Core :: Audio/Video: GMP, defect, P1)
Tracking
()
People
(Reporter: cpearce, Assigned: cpearce)
Details
Attachments
(1 file)
59 bytes,
text/x-review-board-request
|
mozbugz
:
review+
jcristau
:
approval-mozilla-beta+
gchang
:
approval-mozilla-release+
gchang
:
approval-mozilla-esr52+
|
Details |
Netflix reported that on June 6 at 5:30pm PST they started to see a spike of failures on Linux. This was observed on 32 and 64bit Linux, with both Fedora and Ubuntu distro builds affected. Firefox versions 49-53 show up in Netflix's logs as failing. I believe I have narrowed this down to how we're handling timestamps in our CDM harness code. I'm waiting on Netflix to see if they can corroborate this.
Assignee | ||
Comment 1•7 years ago
|
||
I think we should do a 54 dot release for this, or at least ride along in another dot release, as this affects Netflix on Linux. If this is indeed the timestamp issue I believe it is, it should already be fixed in 55.
status-firefox54:
--- → affected
tracking-firefox54:
--- → ?
Comment 2•7 years ago
|
||
Track 54+ as this is a huge impact for users. We plan to have a 54 dot release next week. We definitely will include this one.
Comment hidden (mozreview-request) |
Comment 4•7 years ago
|
||
mozreview-review |
Comment on attachment 8880692 [details] Bug 1375708 - Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). https://reviewboard.mozilla.org/r/152050/#review157010 ::: commit-message-b1b91:5 (Diff revision 1) > +Bug 1375708 - Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). r?gerald > + > +On Linux some implementations of time(0) appear to be suffering from integer > +overflow and giving us the wrong dates. This causes the time we expose to the > +CDM to be wrong, and so licenses pass to the CDM are failing to authenticate, "pass" -> "passed"? ::: commit-message-b1b91:14 (Diff revision 1) > +the WidevineDecryptor to talk to the CDM. In 55 (in beta) and later we use the > +PChromiumCDM protocol to talk to the CDM. This doesn't use time(0) to get a > +time for the CDM, so it's immune to the problem here. > + > +So this patch makes the GetCurrentWallTime() implementation in > +WidevineDecryptor matches the code currently being used on Nightly and Beta in "matches" -> "match"
Attachment #8880692 -
Flags: review?(gsquelart) → review+
Comment hidden (mozreview-request) |
Pushed by cpearce@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/510532c5129c Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). r=gerald
Assignee | ||
Comment 7•7 years ago
|
||
This is also the same function that Chrome uses to generate a timestamp to pass to the CDM: https://cs.chromium.org/chromium/src/media/cdm/cdm_adapter.cc?l=733&rcl=f11d62080a80c7de948ec4c4d7e9c1673becb257
Comment 8•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/510532c5129c
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox56:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Comment 9•7 years ago
|
||
Please request Beta and Release approval on this when you get a chance.
Assignee | ||
Comment 10•7 years ago
|
||
Steps to Reproduce: (On Linux 32 bit (I repro'd on i686 Ubuntu 16.04, 64bit Ubuntu seems to not repro) 1. Set pref media.eme.chromium-api.enabled=false and restart Firefox 2. Load Netflix, try to play a video 3. Observe failure.
Assignee | ||
Comment 12•7 years ago
|
||
Comment on attachment 8880692 [details] Bug 1375708 - Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). (Beta) Approval Request Comment [Feature/Bug causing the regression]: EME video playback [User impact if declined]: Netflix and other DRM streaming providers will fail on many Linux systems. [Is this code covered by automated tests?]: No; we aren't able to test interactions with the third party CDM easily. [Has the fix been verified in Nightly?]: Yes. [Needs manual test from QE? If yes, steps to reproduce]: Probably a good idea. STR in comment #10. [List of other uplifts needed for the feature/fix]: Just this one. [Is the change risky?]: No. [Why is the change risky/not risky?]: We are already running the same code as this change makes in Beta and Nightly (which is using a different IPC protocol to talk to the CDM). So we've effectively been running with this change in beta/nightly for a while. [String changes made/needed]: None. (ESR) [Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: User impact if declined: Netflix won't work on many Linux distros. Fix Landed on Version: Nightly. Risk to taking this patch (and alternatives if risky): Low risk, as we've been using equivalent code in Nightly/Beta for a while. String or UUID changes made by this patch: None. See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info. (Release) Approval Request Comment [Feature/Bug causing the regression]: EME video playback [User impact if declined]: Netflix and other DRM streaming providers will fail on many Linux systems. [Is this code covered by automated tests?]: No; we aren't able to test interactions with the third party CDM easily. [Has the fix been verified in Nightly?]: Yes. [Needs manual test from QE? If yes, steps to reproduce]: Probably a good idea. STR in comment #10. [List of other uplifts needed for the feature/fix]: Just this one. [Is the change risky?]: No. [Why is the change risky/not risky?]: We are already running the same code as this change makes in Beta and Nightly (which is using a different IPC protocol to talk to the CDM). So we've effectively been running with this change in beta/nightly for a while. [String changes made/needed]: None.
Flags: needinfo?(cpearce)
Attachment #8880692 -
Flags: approval-mozilla-release?
Attachment #8880692 -
Flags: approval-mozilla-esr52?
Attachment #8880692 -
Flags: approval-mozilla-beta?
Comment 13•7 years ago
|
||
Comment on attachment 8880692 [details] Bug 1375708 - Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). fix an issue with cdm on linux, beta55+
Attachment #8880692 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 14•7 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/7bda5dde8565
Updated•7 years ago
|
Flags: qe-verify+
Comment 15•7 years ago
|
||
Comment on attachment 8880692 [details] Bug 1375708 - Use base::Time() instead of time(0) in WidevineDecryptor::GetCurrentWallTime(). Fix a Netflix issue on Linux. Release54+ & ESR52+. Should be in 54.0.1.
Attachment #8880692 -
Flags: approval-mozilla-release?
Attachment #8880692 -
Flags: approval-mozilla-release+
Attachment #8880692 -
Flags: approval-mozilla-esr52?
Attachment #8880692 -
Flags: approval-mozilla-esr52+
Comment 16•7 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-release/rev/32dd5d18caf1
Updated•7 years ago
|
Updated•7 years ago
|
Comment 17•7 years ago
|
||
[Tracking Requested - why for this release]: It would be good if we could clarify whether this is intended for the ESR 52.2.1 dot release as well or just 52.3. I've only landed it on default for 52.3 for now. https://hg.mozilla.org/releases/mozilla-esr52/rev/0f59191c605e
Tracked for ESR52.3, this is not something urgent that needs to be included in esr52.2.1
Comment 19•7 years ago
|
||
Reproduced the initial issue using steps from comment 10, Fx 54.0 RC and Ubuntu 16.04 64bit, verified as fixed on Firefox 54.0.1.
Flags: qe-verify+
You need to log in
before you can comment on or make changes to this bug.
Description
•