S9/S9+ specific WebView device crash report

2020-02-23 09:17发布

问题:

We have been seeing crash reports coming into Google Play which are specific to the Samsung S9 (starqlesq) & S9+ (star2qlesq), both running Android 8.0.0:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) backtrace: #00 pc 0000000000a51278 /vendor/lib64/libllvm-glnext.so (_ZN13ShaderObjects17loadProgramBinaryEP15CompilerContextPvmP23QGLC_LINKPROGRAM_RESULT+1396) #01 pc 000000000099b500 /vendor/lib64/libllvm-glnext.so (_ZN15CompilerContext17loadProgramBinaryEPvmP23QGLC_LINKPROGRAM_RESULT+160) #02 pc 0000000000a6e110 /vendor/lib64/libllvm-glnext.so (_Z21QGLCLoadProgramBinaryPvS_mP23QGLC_LINKPROGRAM_RESULT+88) #03 pc 00000000001a501c /vendor/lib64/egl/libGLESv2_adreno.so (_ZN17EsxShaderCompiler21LoadProgramBinaryBlobEP10EsxContextP10EsxProgramPKvmP10EsxInfoLog+256)

Looking at the above stack trace, the crash appears to be in OpenGL system code.

This is strange, because we have a crash reporting solution integrated (the Microsoft App Center SDK) and other crash reports are going to App Center.

Our app makes heavy use of WebView, which I understand now uses Chrome, running in a separate process.

My questions are therefore:

  • Is the fact this crash report is going to Google Play and not App Center indicative of a WebView related crash?
  • What sort of thing can cause a crash like this? So far it is affecting 3 unique users, so it doesn't appear to be specific to an individual user with an unusual device configuration.
  • What actions would be most effective in narrowing down and resolving the issue?

回答1:

Disabling hardware acceleration has now been confirmed as working around the issue on these problematic devices:

val product = Build.PRODUCT
val s9ProductsThatNeedWorkaround = arrayOf("starqltesq", "star2qltesq", "starqlteue", "star2qlteue")
if (s9ProductsThatNeedWorkaround.contains(product)) {
    WebView.setLayerType(LAYER_TYPE_SOFTWARE)
}

There may be some cosmetic anomalies when rending web content however.