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

Issue 916036 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Dec 27
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

[Android] Chrome crashed when running the WebML examples for WebGL backend

Reported by leix1.w...@intel.com, Dec 18

Issue description

Steps to reproduce the problem:
1. Launch chrome stable 71.0.3578.98 on Android
2. Visit https:///brucedai.github.io/nt/examples/image_classification/index.html
3. Switch to WebGL from WASM in the first box
4. Switch to "ResNet50 v2(Onnx)" or "DenseNet(Onnx)" in the second box

It will take a long time to wait for the examples loading.

What is the expected behavior?
The examples work normally on Android.

What went wrong?
Chrome crashed when running the examples with WebGL backend.
1. ResNet50 v2(Onnx) --> see "Aw, Snap!" pages
2. DenseNet(Onnx)  --> The browser closes abruptly

My Test Device: Google Pixel 2(Android 8.1.0)

Crashed report ID: 

How much crashed? Just one tab

Is it a problem with a plugin? N/A 

Did this work before? N/A 

Chrome version: 71.0.3578.98  Channel: stable
OS Version: 8.1.0
Flash Version:
 
DenseNet-crash.log
86.1 KB View Download
ResNet50_v2-crash.log
120 KB View Download
Labels: Needs-Triage-M71
Labels: Needs-triage-Mobile
Cc: chelamcherla@chromium.org
Components: Blink>WebGL
Labels: Target-71 Target-72 Target-73 M-73 Triaged-Mobile FoundIn-73 FoundIn-72 FoundIn-71
Status: Untriaged (was: Unconfirmed)
Tested the issue in Android and able to reproduce the issue. 

Steps Followed:
1. Navigated to https:///brucedai.github.io/nt/examples/image_classification/index.html
2. Selected WebGL and ResNet50 v2(Onnx) in M-71 and M-73 : Observed Aw snap page
3. In M-60 browser abruptly closes

Chrome versions tested:
60.0.3112.113 , 71.0.3578.99 , 73.0.3646.0

OS:
Android 9.0.0

Android Devices:
Pixel 2

Issue is seen from older M-60 builds, hence considering this as Non-Regression and marking as Untriaged for further inputs from dev team.

Thanks!
Cc: -chelamcherla@chromium.org yunchao...@intel.com sindhu.chelamcherla@chromium.org yang...@intel.com ningxin...@intel.com
Please provide about:crashes entries for these.

Cc: -ningxin...@intel.com
I uploaded the crash reports, the crash report IDs  are aab2020600943c71 and d06cb5ce7eef71cf.
Status: WontFix (was: Untriaged)
The crash is a GPU process hang. This is expected if too much GPU work is enqueued at once (typically one really long-running draw call). Unless this is a regression, this is working as intended.

Unfortunately the stacks don't seem to have been preserved, so I can't tell what exact operation is taking too long (but it's probably a drawArrays).
Thanks for the investigation! For some background info, 
1) the ResNet50 is an important workload for image classification, so we try it on web.
2) we use TesnorFlow.js WebGL kernels to execute ResNet50 in the webml examples, so I suppose TensorFlow.js users may also hit this issue when running ResNet50 on Chrome for Android
3) this test can pass on Chrome for desktop

My question is how Chrome thinks the GPU work is "too much". Any thresholds for that? And how about the compute task (e.g. running compute shader), is it allowed to be running longer?

Can you have a try with option "--disable-gpu-watchdog"? 
Too much ~= 5 or 10 seconds for a single operation (I don't remember).
You'll need to break the work up into smaller parts that don't take as long.

--disable-gpu-watchdog, as Yang pointed out, will let you confirm whether the operation works when the watchdog doesn't kill it.

Comment 11 by leix1.w...@intel.com, Jan 18 (4 days ago)

I opened Chrome with: 
adb shell 'echo "chrome --disable-gpu-watchdog" > /data/local/tmp/chrome-command-line',
this browser still crashed when running these same examples.

Now, we updated our examples codes, this issue didn't occur on Chrome.

Comment 12 by kainino@chromium.org, Jan 18 (4 days ago)

I think that setting flags this way might require a rooted device. You can check in chrome://version to see whether the flag is taking effect.

Sign in to add a comment