Some release clients are sending prerelease probes
Categories
(Toolkit :: Telemetry, defect)
Tracking
()
People
(Reporter: tdsmith, Assigned: chutten)
References
Details
Attachments
(2 files)
|
47 bytes,
text/x-phabricator-request
|
lizzard
:
approval-mozilla-beta+
|
Details | Review |
|
1.88 KB,
text/plain
|
rrayborn
:
review+
|
Details |
| Assignee | ||
Comment 1•7 years ago
|
||
| Assignee | ||
Comment 3•7 years ago
|
||
The change from O(millions) to O(hundreds) of pings containing MEMORY_TOTAL per day on release happened in Firefox 58. Not coincidentally, that's when bug 1406391 locked extended data collection to prerelease channels only.
(Prior to that users could opt in to sending us more data on release, and the proportion of users who did so roughly lines up with the numbers we see on TMO.)
But as for those pesky hundreds of users... Well, we know from past bugs that enabling MEMORY_* probes on release channel isn't as simple as changing the definition. There's also a runtime check to ensure that you're able to record the extended data set.
So whatever's happening, it isn't some weird burp around release channels and it isn't a fault in how the definitions aren't being properly applied. No, Telemetry.canRecordExtended must be true at the point when the recording happens.
Now, the logic about when canRecordExtended is true is a little complex. If MOZ_UPDATE_CHANNEL is one of [nightly, aurora, beta] then it's true. If it's an unofficial build (MOZILLA_OFFICIAL is falsey) then we also allow the dev default channel. ("official" builds with default channel exist for some Linux distros. We want to exclude them because we don't know if they're something we can consider "pre-release" or not). If MOZ_UPDATE_CHANNEL is release but the channel you get updates from is beta then you're running a Release Candidate, which is pre-release, so it's true then, too. We also have a bool pref toolkit.telemetry.testing.overridePreRelease which, if true, means canRecordExtended is true.
We also have a pref toolkit.telemetry.overrideUpdateChannel that can be set to any string you want us to report as your channel. So if someone has that set to "release", but is actually running a pre-release build, we'll report "release" but allow it to record pre-release data.
Also, someone could just go in and type Telemetry.canRecordExtended = true into a privileged console and that'd do it, too. Most commonly this is done in tests.
So, in short, the ways you can report "release" and still submit extended data like MEMORY_TOTAL are:
- Be on "release" and set
canRecordExtendedtotruemanually or as part of a test suite. - Be on not-release and either
- Set
toolkit.telemetry.testing.overridePreReleasetotrue - Set
toolkit.telemetry.overrideUpdateChanneltorelease
- Set
Unfortunately we don't currently report the state of these prefs in Telemetry so we can't check if those hundreds of profiles are setting these test prefs. We can, though, and I think that's the obvious next step for this bug.
(( I wonder if there's any way to determine if canRecordExtended is being set during a test. I suppose we could have a scalar that counted how often that subsession SetCanRecordExtended was called... ))
| Assignee | ||
Comment 4•7 years ago
|
||
Oh, in the pile of "definitely not the problem" is if a profile collected the data in one channel then switched channels before sending the ping. "main" pings always have the channel of the collecting session, not the sending session.
(( If the measurements were on the "crash" ping then we'd need to consider this and account for the value of hasCrashEnvironment. ))
| Assignee | ||
Comment 5•7 years ago
|
||
We're seeing some weirdness in the data that might be explained by these
prefs being set to some non-default value.
| Assignee | ||
Comment 6•7 years ago
|
||
Comment 7•7 years ago
|
||
Comment 9•7 years ago
|
||
| bugherder | ||
| Assignee | ||
Comment 10•7 years ago
|
||
Comment on attachment 9038042 [details]
Bug 1514031 - Record the value of some telemetry testing prefs. r?janerik
Beta/Release Uplift Approval Request
Feature/Bug causing the regression
None
User impact if declined
We'll have to wait longer to get the information about whether or not these prefs account for a data anomaly. (see bug 1521597)
Is this code covered by automated tests?
No
Has the fix been verified in Nightly?
Yes
Needs manual test from QE?
No
If yes, steps to reproduce
List of other uplifts needed
None
Risk to taking this patch
Low
Why is the change risky/not risky? (and alternatives if risky)
Only adding two prefs to the well-understood userPrefs Telemetry Environment block.
String changes made/needed
Updated•7 years ago
|
Comment 11•7 years ago
|
||
Comment on attachment 9038042 [details]
Bug 1514031 - Record the value of some telemetry testing prefs. r?janerik
This should help the telemetry team clarify some anomalies.
OK for uplift to beta 7.
Comment 12•7 years ago
|
||
| bugherder uplift | ||
Updated•7 years ago
|
| Assignee | ||
Comment 13•7 years ago
|
||
Analysis in bug 1521597 showed 0.0003% of pings from Release 66 sending prerelease data, none having their channels overridden by these test prefs.
Reopening, clearing fields so it shows in triage.
| Assignee | ||
Comment 14•7 years ago
|
||
Moving this investigation to the experts with bug 1544028
Updated•7 years ago
|
Description
•