webview: add trace event for relro timeout.

Record an instant trace event if we encounter a timeout while waiting
for relro creation, using the same message we already log.

We're seeing a number of occurrences of this timeout in cases where
WebView is otherwise working in traces, so this should help to debug.

Using the ACTIVITY_MANAGER trace tag as it's enabled for the trace
collection pipeline already; WEBVIEW is not.

Bug: 235546861
Test: n/a
Change-Id: I2b60c5699efde026da934457e430adaebad1d2b3
This commit is contained in:
Torne (Richard Coles)
2022-06-09 15:38:20 -04:00
parent 735ebc1f79
commit 836308968a

View File

@@ -21,6 +21,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.os.AsyncTask;
import android.os.Trace;
import android.os.UserHandle;
import android.util.Slog;
import android.webkit.UserPackage;
@@ -265,10 +266,12 @@ class WebViewUpdateServiceImpl {
// Either the current relro creation isn't done yet, or the new relro creatioin
// hasn't kicked off yet (the last relro creation used an out-of-date WebView).
webViewStatus = WebViewFactory.LIBLOAD_FAILED_WAITING_FOR_RELRO;
Slog.e(TAG, "Timed out waiting for relro creation, relros started "
String timeoutError = "Timed out waiting for relro creation, relros started "
+ mNumRelroCreationsStarted
+ " relros finished " + mNumRelroCreationsFinished
+ " package dirty? " + mWebViewPackageDirty);
+ " package dirty? " + mWebViewPackageDirty;
Slog.e(TAG, timeoutError);
Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, timeoutError);
}
}
if (!webViewReady) Slog.w(TAG, "creating relro file timed out");