From 90b8057e6f264a8665ff9f7170320a5e5d6670dc Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Thu, 8 Dec 2022 23:55:21 -0800 Subject: [PATCH] Create a new ProcessStats instance for each file read As the existing instance could be accessed by another thread in the meanwhile. Bug: 260727845 Test: b/260727845#comment6 Change-Id: I941ea853b9c01ed0eba4f5c6df924b6d1dacc1fc --- .../core/java/com/android/server/am/ProcessStatsService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ProcessStatsService.java b/services/core/java/com/android/server/am/ProcessStatsService.java index 438a2d4302aff..bac9253d5b931 100644 --- a/services/core/java/com/android/server/am/ProcessStatsService.java +++ b/services/core/java/com/android/server/am/ProcessStatsService.java @@ -634,7 +634,6 @@ public final class ProcessStatsService extends IProcessStats.Stub { if (files != null) { String highWaterMarkStr = DateFormat.format("yyyy-MM-dd-HH-mm-ss", highWaterMarkMs).toString(); - ProcessStats stats = new ProcessStats(false); for (int i = files.size() - 1; i >= 0; i--) { String fileName = files.get(i); try { @@ -647,7 +646,7 @@ public final class ProcessStatsService extends IProcessStats.Stub { new File(fileName), ParcelFileDescriptor.MODE_READ_ONLY); InputStream is = new ParcelFileDescriptor.AutoCloseInputStream(pfd); - stats.reset(); + final ProcessStats stats = new ProcessStats(false); stats.read(is); is.close(); if (stats.mTimePeriodStartClock > newHighWaterMark) {