Bug 1304268 - permanently record MEDIA_DECODING_PROCESS_CRASH telemetry data. r=bryce
authorJohn Lin <jolin@mozilla.com>
Tue, 18 Feb 2020 22:13:10 +0000
changeset 514546 0f2375ca44f9a354c6a41e021e3e0c10701ac131
parent 514545 12c9312e15bb4de1a989351d273c3866c5603462
child 514547 2fd89dbe725861f6d82000081c6708fa27f1e431
push id107634
push userjolin@mozilla.com
push dateTue, 18 Feb 2020 22:44:11 +0000
treeherderautoland@0f2375ca44f9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1304268 - permanently record MEDIA_DECODING_PROCESS_CRASH telemetry data. r=bryce This data was recorded for releases 52-57 when the remote decoding process mechanism was developed. Enable it again to monitor the data and see if stagefright still crashes in recent Android versions. If it's no longer the case, we might deprecate out-of-process decoder and save some IPC overhead. Differential Revision: https://phabricator.services.mozilla.com/D63257
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/RemoteManager.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/RemoteManager.java
@@ -1,15 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 package org.mozilla.gecko.media;
 import org.mozilla.gecko.GeckoAppShell;
+import org.mozilla.gecko.TelemetryUtils;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.media.MediaFormat;
 import android.os.DeadObjectException;
 import android.os.IBinder;
@@ -164,16 +165,17 @@ public final class RemoteManager impleme
             Log.e(LOGTAG, "Got exception during createRemoteMediaDrmBridge().", e);
             return null;
     public void binderDied() {
         Log.e(LOGTAG, "remote codec is dead");
+        TelemetryUtils.addToHistogram("MEDIA_DECODING_PROCESS_CRASH", 1);
     private synchronized void handleRemoteDeath() {
         if (init() && recoverRemoteCodec()) {
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -9422,16 +9422,26 @@
     "alert_emails": ["jya@mozilla.com"],
     "bug_numbers": [1369538, 1570634],
     "expires_in_version": "74",
     "kind": "linear",
     "high": 520000,
     "n_buckets": 66,
     "description": "MediaCacheStream stream length size in KB; Either known size from the HTTP header if available, or otherwise the size actually downloaded. Recorded at every MediaCacheStream destruction."
+    "record_in_processes": ["content"],
+    "products": ["firefox", "geckoview"],
+    "alert_emails": ["jolin@mozilla.com"],
+    "bug_numbers": [1304268],
+    "expires_in_version": "never",
+    "kind": "count",
+    "operating_systems": ["android"],
+    "description": "Records a value each time GeckoView remote decoding process crashes unexpectedly while decoding media content."
+  },
     "record_in_processes": ["content", "socket"],
     "products": ["firefox", "geckoview"],
     "alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com", "nohlmeier@mozilla.com"],
     "bug_numbers": [1484024, 1570634, 1607283],
     "expires_in_version": "80",
     "kind": "enumerated",
     "n_values": 14,