Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 867e305d authored by Songchun Fan's avatar Songchun Fan
Browse files

[incremental] fix metrics logging during ANR

aInfo is null; should use mApp.info instead.

Test: atest android.cts.statsdatom.statsd.IncrementalAtomTests#testAppAnrIncremental
BUG: 182205656
Change-Id: If9ce31f69a34f5cbf8d2f295bac5b365303a717a
parent 64f83419
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -303,17 +303,17 @@ class ProcessErrorStateRecord {
        float loadingProgress = 1;
        IncrementalMetrics incrementalMetrics = null;
        final PackageManagerInternal packageManagerInternal = mService.getPackageManagerInternal();
        if (aInfo != null && aInfo.packageName != null) {
        if (mApp.info != null && mApp.info.packageName != null) {
            IncrementalStatesInfo incrementalStatesInfo =
                    packageManagerInternal.getIncrementalStatesInfo(
                            aInfo.packageName, mApp.uid, mApp.userId);
                            mApp.info.packageName, mApp.uid, mApp.userId);
            if (incrementalStatesInfo != null) {
                loadingProgress = incrementalStatesInfo.getProgress();
            }
            final String codePath = aInfo.getCodePath();
            final String codePath = mApp.info.getCodePath();
            if (IncrementalManager.isIncrementalPath(codePath)) {
                // Report in the main log that the incremental package is still loading
                Slog.e(TAG, "App crashed on incremental package " + aInfo.packageName
                Slog.e(TAG, "App ANR on incremental package " + mApp.info.packageName
                        + " which is " + ((int) (loadingProgress * 100)) + "% loaded.");
                final IBinder incrementalService = ServiceManager.getService(
                        Context.INCREMENTAL_SERVICE);
@@ -418,7 +418,6 @@ class ProcessErrorStateRecord {
            mService.mProcessList.mAppExitInfoTracker.scheduleLogAnrTrace(
                    pid, mApp.uid, mApp.getPackageList(), tracesFile, offsets[0], offsets[1]);
        }

        FrameworkStatsLog.write(FrameworkStatsLog.ANR_OCCURRED, mApp.uid, mApp.processName,
                activityShortComponentName == null ? "unknown" : activityShortComponentName,
                annotation,