Crashing due to instantiating WebResourceResponse with empty reasonPhrase (net service only) |
|
Issue descriptionI ran our support library tests today, and observed this crash (exception on UI thread). In particular, this is triggered by ServiceWorkerClientCompatTest#testServiceWorkerClientInterceptCallback: --------- beginning of crash 11-16 00:24:30.590 8089 8089 E AndroidRuntime: FATAL EXCEPTION: main 11-16 00:24:30.590 8089 8089 E AndroidRuntime: Process: androidx.webkit.test, PID: 8089 11-16 00:24:30.590 8089 8089 E AndroidRuntime: java.lang.IllegalArgumentException: reasonPhrase can't be empty. 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at android.webkit.WebResourceResponse.setStatusCodeAndReasonPhrase(WebResourceResponse.java:138) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at android.webkit.WebResourceResponse.<init>(WebResourceResponse.java:76) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at xM.a(SourceFile:292) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at azr.handleMessage(SourceFile:67) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6494) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 11-16 00:24:30.590 8089 8089 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: Exception encountered by: Thread[main,5,main]. Dumping thread state to outputs and pining for the fjords. 11-16 00:24:30.596 8089 8089 E MonitoringInstr: java.lang.IllegalArgumentException: reasonPhrase can't be empty. 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at android.webkit.WebResourceResponse.setStatusCodeAndReasonPhrase(WebResourceResponse.java:138) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at android.webkit.WebResourceResponse.<init>(WebResourceResponse.java:76) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at xM.a(SourceFile:292) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at azr.handleMessage(SourceFile:67) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at android.os.Handler.dispatchMessage(Handler.java:106) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at android.os.Looper.loop(Looper.java:164) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at android.app.ActivityThread.main(ActivityThread.java:6494) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at java.lang.reflect.Method.invoke(Native Method) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 11-16 00:24:30.596 8089 8089 E MonitoringInstr: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) --- ^ I get the above when running support lib tests, but this problem is actually triggered in chromium. Also, this is probably a non-crashing behavior change when not using support lib. We should try to add chromium-side coverage for this. I looked into it a bit, and I think this can only happen if AwWebResourceResponse has an empty (but not null) reasonPhrase. I deobfuscated by hand, and I think "xM.a()" is actually WebViewContentsClientAdapter.onReceivedHttpError() [1]. [1] https://cs.chromium.org/chromium/src/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java?l=628-630&rcl=46c98bcd1c7037c1588b6e9c6640423d12c5fee3
,
Jan 16
(Bulk edit to add component) |
|
►
Sign in to add a comment |
|
Comment 1 by dougt@chromium.org
, Nov 27