The WEBRTC_CALL_DURATION histogram is not recorded after having a call on jitsi, google meet, or hangouts
Categories
(Core :: WebRTC, defect, P2)
Tracking
()
People
(Reporter: cmuresan, Assigned: jib)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: regression)
Attachments
(3 files, 1 obsolete file)
|
3.31 MB,
video/quicktime
|
Details | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
2.90 KB,
text/plain
|
tdsmith
:
data-review+
|
Details |
[Affected versions]:
- Firefox Nightly 80.0a1, Build ID 20200720094507
- Firefox Beta 79.0, Build ID 20200720193547
[Affected Platforms]:
- Windows 10 x64
- macOS 10.15.4
- Ubuntu 16.04 x64
[Prerequisites:]
- Have the following prefs set:
privacy.webrtc.allowSilencingNotificationstotrueprivacy.webrtc.legacyGlobalIndicatortofalse
[Steps to reproduce]:
- Open the browser with the profile from prerequisites and navigate to the
meet.google.com,hangouts.google.com,ormeet.jit.sipage. - Host a call and have someone join from another device.
- End the call and navigate to the about:telemetry page.
- Search for the
WEBRTC_CALL_DURATIONhistogram and observe the behavior.
[Expected result]:
- The histogram is displayed.
[Actual result]:
- The histogram is not recorded.
[Notes]:
- The issue is also reproducible on
join.meon Windows and macOS. - The issue is not reproducible with Zoom, Facebook, Whereby, Talky, webroom.net, jumpchat, and linkello.
- Attached a screen recording with the issue.
| Reporter | ||
Updated•5 years ago
|
Comment 1•5 years ago
|
||
The WEBRTC_CALL_DURATION measurement is done deep in the WebRTC stack, outside of the control of the front-end from what I can tell. Any idea what's happening here, jib?
| Comment hidden (obsolete) |
| Reporter | ||
Updated•5 years ago
|
Comment 3•5 years ago
|
||
The measurement dashboard does show data, it's all crammed to the left, but even the higher buckets still have a few samples (and are thus not eliminated from the view).
Not sure about about:telemetry, so far I haven't been able to make it record and without data I can't check if it's a data display problem.
Comment 4•5 years ago
|
||
Tried a call on https://talky.io/ and indeed it's recorded.
about:telemetry displays that just fine.
That puts it back into Core::WebRTC as it seems to be a recording issue.
Updated•5 years ago
|
Comment 5•5 years ago
|
||
Can you please confirm if this is indeed an issue with the probe for certain domains? We were planning on shipping an experiment next monday that uses the value from this probe to measure experiment success - it would be good to get a confirmation of the issue so we can plan the experiment accordingly.
| Assignee | ||
Comment 7•5 years ago
|
||
[Tracking Requested - why for this release]: WEBRTC_CALL_DURATION telemetry recording has been broken since 71.
WEBRTC_CALL_DURATION recording is effectively non-functional for any real site, except the most trivial demo that doesn't do any renegotiation.
I've reproduced this with mozregression using the following steps:
STRs:
- Start a fresh instance of Firefox.
- Open https://jsfiddle.net/jib1/3x9andz7/ and share cam+mic
- Open a second tab
- Close the first tab
- Open about:telemetry#search=WEBRTC_CALL_DURATION
Expected result: A histogram for WEBRTC_CALL_DURATION is shown
Actual result: No histogram for WEBRTC_CALL_DURATION is shown
Regression range:
- mozregression gave in at 2019-10-01-2019-10-02, which points squarely to bug 1571015.
In short, the regressing bug added a ref-counting mechanism delaying reporting of WEBRTC_CALL_DURATION until the number of active peer connections per URI drops to zero.
The bug is startCallTelem (which increments) is called in every pc.setRemoteDescription call, whereas RecordEndOfCallTelemetry is called just once on pc.close (the STR fiddle re-negotiates once to repro).
Comment 8•5 years ago
|
||
You've already identified the problem and the found the regressing bug, so I'm not sure what additional information is needed here.
I don't know if we can salvage the approach from Bug 1571015 or if we should just revert those changes. If we revert it, we'll be back to measuring PeerConnection duration rather than call duration, but maybe that is ok. Since I made a mess of things the first time around, I think we'd be better off if someone with greater knowledge of PeerConnection had a look at this.
| Assignee | ||
Comment 9•5 years ago
|
||
I'll take a stab at it.
Comment 10•5 years ago
|
||
Thank you!
Comment 11•5 years ago
|
||
Not sure we need to track since it's been broken for a while.
| Assignee | ||
Comment 12•5 years ago
|
||
| Assignee | ||
Comment 13•5 years ago
|
||
| Assignee | ||
Comment 14•5 years ago
|
||
Comment 15•5 years ago
|
||
Comment 16•5 years ago
|
||
Comment 17•5 years ago
|
||
Backed out for failing PeerConnectionImpl.cpp
Failure log:
- Assertion: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=311702931&repo=autoland&lineNumber=8301
- Crash: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=311704200&repo=autoland&lineNumber=1870
Backout: https://hg.mozilla.org/integration/autoland/rev/c7d03304f6f8b71f5012bc1587a9f37c8ee672d6
Comment 18•5 years ago
|
||
Comment 19•5 years ago
|
||
| bugherder | ||
| Reporter | ||
Comment 20•5 years ago
|
||
I have verified that the issue is no longer reproducible on the latest Nightly 81.0a1 (Build ID 20200810213634) using Windows 10 x64, macOS 10.15, and Ubuntu 20.04. The WEBRTC_CALL_DURATION histogram is collected when having a call on meet.google.com, hangouts.google.com, and meet.jit.si.
| Assignee | ||
Updated•5 years ago
|
Comment 21•5 years ago
|
||
Too late for Fx80, but I'd consider taking this on ESR78 still if we think it's important enough to do so.
Comment 22•5 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #21)
Too late for Fx80, but I'd consider taking this on ESR78 still if we think it's important enough to do so.
I don't think this is needed on ESR where telemetry is heavily biased by opt-out - I cannot think of any useful output from this change on ESR at the moment.
Updated•5 years ago
|
Description
•