Native crashes due to chromium and system webview
Reported by
ayus...@flock.com,
Mar 20 2018
|
||||
Issue description
Steps to reproduce the problem:
The crashes are very arbitrary, when webview is not even launched.
What is the expected behavior?
App should not crash
What went wrong?
App crashes with the following native crash log:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/nobleltedv/noblelte:6.0.1/MMB29K/N920IDVU3BPJ2:user/release-keys'
Revision: '9'
ABI: 'arm64'
pid: 17700, tid: 18283, name: Chrome_InProcRe >>> to.go <<<
signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x27eb00004524
x0 0000007f6c2b55dc x1 0000007f6e92e000 x2 0000000000000001 x3 0000000000000001
x4 0000000000000000 x5 0000000000000001 x6 0000000000000000 x7 0000000000000000
x8 0000000000000001 x9 0000000000594420 x10 0000007f82469888 x11 0000000016cfb46b
x12 0000000000000018 x13 ffffffffa54fd817 x14 0037a639db000000 x15 003b9aca00000000
x16 0000007f6e853fa8 x17 0000000000000000 x18 0000007edaade8a0 x19 0000007f6e92f000
x20 0000007edbaa4980 x21 0000007f652eb080 x22 0000007f652eb070 x23 0000007f6e856000
x24 0000007f4fbcdf60 x25 0000007f6e856000 x26 0000007f652eb298 x27 0000007f652eb2e0
x28 0000007f652eb370 x29 0000007f652eaf40 x30 0000007f6c2b57b4
sp 0000007f652eaf40 pc 0000007f6c2765f4 pstate 0000000020000000
backtrace:
#00 pc 000000000117a5f4 /system/app/WebViewGoogle/WebViewGoogle.apk (offset 0xa3c000)
#01 pc 00000000011b97b0 /system/app/WebViewGoogle/WebViewGoogle.apk (offset 0xa3c000)
Crashed report ID: No
How much crashed? Whole browser
Is it a problem with a plugin? No
Did this work before? N/A
Chrome version: 65.0.3325.162 Channel: stable
OS Version: 6.0.1
Flash Version:
For all the crashes, the apk in crash logs is mentioned due to
/system/app/WebViewGoogle/WebViewGoogle.apk
OR
/system/app/webview/webview.apk
,
Mar 20 2018
If it's always an APK in /system/app then this indicates the user hasn't updated WebView ever and is using the built-in version, which will be very old on an M device like the one you quoted here. Probably whatever bug is being hit is already fixed in newer WebView versions and users should update, and even if it's not already fixed, users who don't update wouldn't get any fix we implemented if they never update :| I assume you're reporting this based on the information you see in the Play Store crash dashboard for your app? Unfortunately the information you see there and copied here is not really enough to diagnose issues - we need the full microdump printed into the system log at the time of the crash, and there's no way for you to get that from the dashboard. If you can link us to your application's page on the Play Store (or just give us the full package name), we can look in our own crash backend to see what issues your app is having across which webview versions, and hopefully identify the issue for you so that we can fix it or confirm that it's definitely already fixed in a later version. Sorry for the inconvenience here; if you can give us that information we'll try our best to help you resolve this!
,
Mar 20 2018
Thanks for the update. Yes, I am looking at the play store console for the said backtrace. The full package name for my app is "to.go". Let me know if you need anything else.
,
Mar 20 2018
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 20 2018
Ah, yes, I see that in the debuggerd output now - I didn't twig that was actually the package name, good short domain ;) So for your app there's a couple of things I see: 1) there's people on webview 60 who are seeing a crash in cc::SingleThreadProxy::DidLoseCompositorFrameSinkOnImplThread, but this hasn't happened on any later version (the current stable version is 65) so this is probably already fixed. 2) there's at least one case where your app is throwing an uncaught exception in a WebView callback, causing WebView to crash - you should make sure you don't let exceptions "escape" from any of the WebView callback functions, since this usually causes a hard-to-interpret native crash (we're working on improving this so that you'll see the Java exception more clearly in the dashboard): java.util.ConcurrentModificationException at java.util.ArrayList$ArrayListIterator.next (ArrayList.java:573 ) at to.go.app.customFields.UICustomFieldsProvider.getOrderedCustomField (UICustomFieldsProvider.java:53 ) at to.go.ui.search.SearchItemsProvider.getSearchContactItem (SearchItemsProvider.java:582 ) at to.go.ui.search.SearchItemsProvider.getSearchItem (SearchItemsProvider.java:507 ) at to.go.ui.search.SearchItemsProvider.getSortedSearchItems (SearchItemsProvider.java:495 ) at to.go.ui.search.SearchItemsProvider.getFrequentChatItems (SearchItemsProvider.java:277 ) at to.go.ui.search.SearchItemsProvider.getTopSearchedItems (SearchItemsProvider.java:150 ) at to.go.ui.integrations.searchCallback.SearchCallbackHandler.getSearchResponseString (SearchCallbackHandler.java:79 ) at to.go.ui.integrations.searchCallback.SearchCallbackHandler.getCallbackResponseString (SearchCallbackHandler.java:59 ) at to.go.ui.integrations.searchCallback.SearchCallbackHandler.handleSearch (SearchCallbackHandler.java:204 ) at to.go.ui.integrations.IntegrationWebviewFragment.handleIntegrationCallback (IntegrationWebviewFragment.java:280 ) at to.go.ui.integrations.IntegrationWebviewFragment.access$100 (IntegrationWebviewFragment.java:59 ) at to.go.ui.integrations.IntegrationWebviewFragment$1.shouldOverrideUrlLoading (IntegrationWebviewFragment.java:157 ) at com.android.webview.chromium.WebViewContentsClientAdapter.shouldOverrideUrlLoading (WebViewContentsClientAdapter.java:76 ) at org.chromium.android_webview.AwContentsClient.shouldIgnoreNavigation (AwContentsClient.java:15 ) at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading (AwContentsClientBridge.java:160 ) at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce (Native Method ) at org.chromium.base.SystemMessageHandler.handleMessage (SystemMessageHandler.java:9 ) at android.os.Handler.dispatchMessage (Handler.java:102 ) at android.os.Looper.loop (Looper.java:148 ) at android.app.ActivityThread.main (ActivityThread.java:5451 ) at java.lang.reflect.Method.invoke (Native Method ) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726 ) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616 ) 3) there's a number of crashes where we aren't getting a complete/valid crash dump and so can't tell what is actually happening. This is happening only for users with very old WebView versions like 51, and is probably the case the report you quoted here falls into, unfortunately. There's not a lot we can do about this if users don't update :( So, unfortunately I don't think there's anything in particular we can help you with here at the moment, sorry. I'm going to close the bug for now. This issue has reminded me that the information surfaced in the Play Store dashboard for developers is still often unhelpful for WebView crashes, and I've added a task to our work queue to look into improving this, hopefully in the near future.
,
Mar 20 2018
Thanks for the analysis. Should we ask our users to update both of Chrome and Android System Webview? For 2), is it possible to know the number of instances?. The crashes have started increasing only in the last 60 days. So, we wanted to ensure we have all the possible causes underlined.
,
Mar 20 2018
There was only one instance of that Java exception crash in the db. You could suggest that your users update WebView - they should be doing that anyway as it's critical to many applications. If you want to detect it inside the app and prompt users, you need to be careful how you do this, since the correct thing to update is different on different devices (pre-N devices need to update WebView, N+ devices may need to update either chrome or webview depending how the user has configured that device). There's an example of how to detect the webview version and send the user to the correct play store page here: https://github.com/ntfschr-chromium/ct_workaround - this was written for a specific bug with Symantec certificates back in an older version of WebView so the version range it's trying to detect isn't relevant to you, but the code to retrieve the version and to send the user to the correct play store page is useful for any issue. |
||||
►
Sign in to add a comment |
||||
Comment 1 by pauljensen@chromium.org
, Mar 20 2018