New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 912739 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 0
Type: Bug



Sign in to add a comment

Missing Crashpad reports for WebView

Project Member Reported by jperaza@chromium.org, Dec 6

Issue description

Chrome Version: 73.0.3630.0
OS: android

Crashpad has been enabled since 73.0.3630.0 but I haven't seen any WebView reports uploaded to crash/ yet:

https://crash.corp.google.com/browse?q=product_name%3D%27AndroidWebView%27+AND+product.Version+LIKE+%2773.%25%27

Testing locally with the webview_instrumentation_apk shell appears to work fine. I suspect this issue is related to WebView's integration with other apps, which isn't emulated by webview_instrumentation_apk.

Specifically, I suspect CLASSPATH/LD_LIBRARY_PATH and DIR_MODULE are set from paths to the embedding application and not from the WebView provider, resulting in the Crashpad handler executable not being found.

 
Description: Show this description
Description: Show this description
Description: Show this description
Cc: mark@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd

commit ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd
Author: Joshua Peraza <jperaza@chromium.org>
Date: Thu Dec 20 22:45:24 2018

android: build package paths using chrome's package

Monochrome uses /system/bin/app_process to load a Java class,
CrashpadMain, to start the Crashpad handler process. In order for
app_process to locate this class and for CrashpadMain to be able to
load the native libraries for Crashpad, CLASSPATH and LD_LIBRARY_PATH
need to be set with all the paths containing code that the Chrome
package depends on.

Add PackagePaths to build these paths.

This work is normally done internally by the Android framework:
https://cs.corp.google.com/android/frameworks/base/core/java/android/app/LoadedApk.java?rcl=7b2b4c838be94e6ca7cfbb255523c800da4a0cce&l=422

Bug:  912739 
Change-Id: I30e4952fb17fea42bdc995296c47cf8a9f440866
Reviewed-on: https://chromium-review.googlesource.com/c/1366763
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618363}
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/base/android/java/src/org/chromium/base/PathUtils.java
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/base/android/path_utils.cc
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/base/android/path_utils.h
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/components/crash/android/BUILD.gn
[add] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/components/crash/android/java/src/org/chromium/components/crash/browser/PackagePaths.java
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/components/crash/content/app/BUILD.gn
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/components/crash/content/app/DEPS
[modify] https://crrev.com/ab42c0a8eb6515d48b4b3ed2325a1a60292be5fd/components/crash/content/app/crashpad_linux.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8778992567641cf606aac45f3ea5f6b741d64b42

commit 8778992567641cf606aac45f3ea5f6b741d64b42
Author: Joshua Peraza <jperaza@chromium.org>
Date: Thu Jan 03 16:11:16 2019

Use app_process to launch crashpad for system webview

When SystemWebview.apk is pre-installed in an Android image, native
libraries are loaded from the apk, so libcrashpad_handler.so isn't
available to exec directly.

Bug:  912739 
Change-Id: Ica26df15481ade6951dd5e330425d0ff50b45e05
Reviewed-on: https://chromium-review.googlesource.com/c/1366494
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619651}
[modify] https://crrev.com/8778992567641cf606aac45f3ea5f6b741d64b42/android_webview/BUILD.gn
[modify] https://crrev.com/8778992567641cf606aac45f3ea5f6b741d64b42/android_webview/system_webview_apk_tmpl.gni
[modify] https://crrev.com/8778992567641cf606aac45f3ea5f6b741d64b42/android_webview/test/BUILD.gn
[modify] https://crrev.com/8778992567641cf606aac45f3ea5f6b741d64b42/chrome/android/monochrome/scripts/monochrome_apk_checker.py
[modify] https://crrev.com/8778992567641cf606aac45f3ea5f6b741d64b42/components/crash/android/java/src/org/chromium/components/crash/browser/PackagePaths.java

Is this now fixed? When will we know?
There haven't been any reports from webview on recent Crashpad enabled canaries. I tested this on emulators, but would likely have been affected by crbug.com/919806 which was fixed this morning. I'm working on trying to test that fix for webview on my phone now.
I'm not sure I can test this particular bit of integration on my non-debuggable phone, but I should be able to verify with the next canary.
Labels: ReleaseBlock-Beta M-73
Marking as M73 RBB for tracking.
There's been some improvement with 73.0.3667.2.
There have been 2 browser crash reports uploaded for AndroidWebView, but reporting is still failing on my Pixel 2 because 32-bit libraries aren't being found:

01-11 08:44:58.573 11487 11519 E chromium: [ERROR:render_frame_impl.cc(1073)] Intentionally crashing (with null pointer dereference) because user navigated to chrome://crash/
01-11 08:44:58.617 11602 11602 F libc    : CANNOT LINK EXECUTABLE "/system/bin/app_process32": "/system/lib64/libandroid_runtime.so" is 64-bit instead of 32-bit
01-11 08:44:58.617 11602 11602 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 11602 (app_process32), pid 11602 (app_process32)

Comment 12 Deleted

Is LD_RUN_PATH set?
LD_LIBRARY_PATH (I think that's what you meant) is set here:
https://cs.chromium.org/chromium/src/components/crash/android/java/src/org/chromium/components/crash/browser/PackagePaths.java?rcl=7452ac61a0e663b6ee64f5a076d588b919eebe17&l=62

Reading further in the logcat I've realized this actually is a 64-bit process, but a typo has us launching the wrong app_process.
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1406867
> LD_LIBRARY_PATH (I think that's what you meant)

It is. But this wasn’t the thread that you needed this time anyway.
Cc: abdulsyed@chromium.org
Labels: -ReleaseBlock-Beta
Status: Fixed (was: Started)
Crash dumping and upload works for AndroidWebView at 73.0.3672.0 on my Pixel 2:
https://crash.corp.google.com/browse?q=reportid=%27defb097ed7a2d52b%27#0

I'll keep an eye out for more WebView reports, but this looks fixed now.

Sign in to add a comment