From 2744a230a03c704503f405fc9cca752e11153252 Mon Sep 17 00:00:00 2001 From: "Randall E. Barker" Date: Mon, 19 Aug 2019 03:30:02 -0700 Subject: [PATCH] Prevent crash reporter from getting stuck in an infinte loop (#1566) --- .../vrbrowser/crashreporting/CrashReporterService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/common/shared/org/mozilla/vrbrowser/crashreporting/CrashReporterService.java b/app/src/common/shared/org/mozilla/vrbrowser/crashreporting/CrashReporterService.java index 2c75784bb..de0c71596 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/crashreporting/CrashReporterService.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/crashreporting/CrashReporterService.java @@ -29,6 +29,9 @@ public class CrashReporterService extends JobIntentService { // Threshold used to fix Infinite restart loop on startup crashes. // See https://github.com/MozillaReality/FirefoxReality/issues/651 public static final long MAX_RESTART_COUNT = 2; + private static final int MAX_PID_CHECK_COUNT = 5; + + private int mPidCheckCount = 0; @Override public int onStartCommand(Intent intent, int flags, int startId) { @@ -71,7 +74,7 @@ protected void onHandleWork(@NonNull Intent intent) { } } - if (!otherProcessesFound) { + if (!otherProcessesFound || (mPidCheckCount > MAX_PID_CHECK_COUNT)) { intent.setClass(CrashReporterService.this, VRBrowserActivity.class); intent.setPackage(BuildConfig.APPLICATION_ID); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -79,6 +82,7 @@ protected void onHandleWork(@NonNull Intent intent) { break; } else { + mPidCheckCount++; try { Thread.sleep(PID_CHECK_INTERVAL); } catch (InterruptedException e) {