From 32af550aebf33ea9f540c6af86ffb0f2d3941565 Mon Sep 17 00:00:00 2001 From: Songchun Fan Date: Tue, 4 May 2021 20:18:35 -0700 Subject: [PATCH] [am] report new incremental crash/anr metrics BUG: 184844615 Test: atest android.cts.statsdatom.incremental.AppErrorAtomTests#testAppCrashOnIncremental Change-Id: Ic429445a4bae47033e2f90c143eaf6fc0ac2c666 --- .../server/am/ActivityManagerService.java | 29 ++++++++++++------- .../server/am/ProcessErrorStateRecord.java | 29 ++++++++++++------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index d526ebc8e5816..cf0ba7e93d3dd 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -7777,16 +7777,25 @@ public class ActivityManagerService extends IActivityManager.Stub incrementalMetrics != null /* isIncremental */, loadingProgress, incrementalMetrics != null ? incrementalMetrics.getMillisSinceOldestPendingRead() : -1, - 0 /* storage_health_code */, - 0 /* data_loader_status_code */, - false /* read_logs_enabled */, - 0 /* millis_since_last_data_loader_bind */, - 0 /* data_loader_bind_delay_millis */, - 0 /* total_delayed_reads */, - 0 /* total_failed_reads */, - 0 /* last_read_error_uid */, - 0 /* last_read_error_millis_since */, - 0 /* last_read_error_code */ + incrementalMetrics != null ? incrementalMetrics.getStorageHealthStatusCode() + : -1, + incrementalMetrics != null ? incrementalMetrics.getDataLoaderStatusCode() + : -1, + incrementalMetrics != null && incrementalMetrics.getReadLogsEnabled(), + incrementalMetrics != null ? incrementalMetrics.getMillisSinceLastDataLoaderBind() + : -1, + incrementalMetrics != null ? incrementalMetrics.getDataLoaderBindDelayMillis() + : -1, + incrementalMetrics != null ? incrementalMetrics.getTotalDelayedReads() + : -1, + incrementalMetrics != null ? incrementalMetrics.getTotalFailedReads() + : -1, + incrementalMetrics != null ? incrementalMetrics.getLastReadErrorUid() + : -1, + incrementalMetrics != null ? incrementalMetrics.getMillisSinceLastReadError() + : -1, + incrementalMetrics != null ? incrementalMetrics.getLastReadErrorNumber() + : 0 ); final int relaunchReason = r == null ? RELAUNCH_REASON_NONE diff --git a/services/core/java/com/android/server/am/ProcessErrorStateRecord.java b/services/core/java/com/android/server/am/ProcessErrorStateRecord.java index c1b2a9c1987a0..5a7e14a6907a6 100644 --- a/services/core/java/com/android/server/am/ProcessErrorStateRecord.java +++ b/services/core/java/com/android/server/am/ProcessErrorStateRecord.java @@ -433,16 +433,25 @@ class ProcessErrorStateRecord { incrementalMetrics != null /* isIncremental */, loadingProgress, incrementalMetrics != null ? incrementalMetrics.getMillisSinceOldestPendingRead() : -1, - 0 /* storage_health_code */, - 0 /* data_loader_status_code */, - false /* read_logs_enabled */, - 0 /* millis_since_last_data_loader_bind */, - 0 /* data_loader_bind_delay_millis */, - 0 /* total_delayed_reads */, - 0 /* total_failed_reads */, - 0 /* last_read_error_uid */, - 0 /* last_read_error_millis_since */, - 0 /* last_read_error_code */); + incrementalMetrics != null ? incrementalMetrics.getStorageHealthStatusCode() + : -1, + incrementalMetrics != null ? incrementalMetrics.getDataLoaderStatusCode() + : -1, + incrementalMetrics != null && incrementalMetrics.getReadLogsEnabled(), + incrementalMetrics != null ? incrementalMetrics.getMillisSinceLastDataLoaderBind() + : -1, + incrementalMetrics != null ? incrementalMetrics.getDataLoaderBindDelayMillis() + : -1, + incrementalMetrics != null ? incrementalMetrics.getTotalDelayedReads() + : -1, + incrementalMetrics != null ? incrementalMetrics.getTotalFailedReads() + : -1, + incrementalMetrics != null ? incrementalMetrics.getLastReadErrorUid() + : -1, + incrementalMetrics != null ? incrementalMetrics.getMillisSinceLastReadError() + : -1, + incrementalMetrics != null ? incrementalMetrics.getLastReadErrorNumber() + : 0); final ProcessRecord parentPr = parentProcess != null ? (ProcessRecord) parentProcess.mOwner : null; mService.addErrorToDropBox("anr", mApp, mApp.processName, activityShortComponentName,