Log only a summary 'Found stale backup journal' message.
With the goal of reducing log spam, print only a summary 'Found stale
backup journal' messages instead of logging within the inner loop.
Previously, over 12k messages could be printed at a time from this
function.
Before this CL:
- a backup was scheduled for each packageName from each stale
journal
- one (or two, if MORE_DEBUG) message was logged for each
packageName in each journal file.
After this CL:
- packageNames are de-duplicated before scheduling backups or logging
(it's not clear to me whether duplicate packageNames previously
occurred, in practice).
- one message is logged for the number (if > 0) of stale journals.
- one message is logged for the number (including their names, if
MORE_DEBUG) of packages.
Bug: 161940947
Test: fewer 'Found state backup journal' messages printed
Merged-In: Ia1343e4cea31feb1eba9da561d20736eb5df0a14
Change-Id: Ia1343e4cea31feb1eba9da561d20736eb5df0a14
(cherry picked from commit 112e3c2d04)
This commit is contained in:
@@ -155,6 +155,7 @@ import java.util.Collections;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -1109,23 +1110,31 @@ public class UserBackupManagerService {
|
|||||||
|
|
||||||
private void parseLeftoverJournals() {
|
private void parseLeftoverJournals() {
|
||||||
ArrayList<DataChangedJournal> journals = DataChangedJournal.listJournals(mJournalDir);
|
ArrayList<DataChangedJournal> journals = DataChangedJournal.listJournals(mJournalDir);
|
||||||
|
// TODO(b/162022005): Fix DataChangedJournal implementing equals() but not hashCode().
|
||||||
|
journals.removeAll(Collections.singletonList(mJournal));
|
||||||
|
if (!journals.isEmpty()) {
|
||||||
|
Slog.i(TAG, addUserIdToLogMessage(mUserId,
|
||||||
|
"Found " + journals.size() + " stale backup journal(s), scheduling."));
|
||||||
|
}
|
||||||
|
Set<String> packageNames = new LinkedHashSet<>();
|
||||||
for (DataChangedJournal journal : journals) {
|
for (DataChangedJournal journal : journals) {
|
||||||
if (!journal.equals(mJournal)) {
|
|
||||||
try {
|
try {
|
||||||
journal.forEach(packageName -> {
|
journal.forEach(packageName -> {
|
||||||
Slog.i(
|
if (packageNames.add(packageName)) {
|
||||||
TAG,
|
|
||||||
addUserIdToLogMessage(
|
|
||||||
mUserId, "Found stale backup journal, scheduling"));
|
|
||||||
if (MORE_DEBUG) {
|
|
||||||
Slog.i(TAG, addUserIdToLogMessage(mUserId, " " + packageName));
|
|
||||||
}
|
|
||||||
dataChangedImpl(packageName);
|
dataChangedImpl(packageName);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Slog.e(TAG, addUserIdToLogMessage(mUserId, "Can't read " + journal), e);
|
Slog.e(TAG, addUserIdToLogMessage(mUserId, "Can't read " + journal), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!packageNames.isEmpty()) {
|
||||||
|
String msg = "Stale backup journals: Scheduled " + packageNames.size()
|
||||||
|
+ " package(s) total";
|
||||||
|
if (MORE_DEBUG) {
|
||||||
|
msg += ": " + packageNames;
|
||||||
|
}
|
||||||
|
Slog.i(TAG, addUserIdToLogMessage(mUserId, msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user