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

Issue 837550 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-VR
Proj-XR



Sign in to add a comment

Crash when pausing/resuming

Project Member Reported by ijamardo@chromium.org, Apr 27 2018

Issue description

Getting consistent crashes with DCHECKs when pausing/resuming the app. To reproduce, simply create a build with dchecks always on and simply start the app, point to a WebXR web page that at least instantiates an ARCoreDevice and then go to the Android desktop making the app to be paused. The crash stack trace is:

Find ABI:arm
signal 11 (SIGSEGV), code 1, fault addr 0x14 in tid 7899 (chromium.chrome), pid 7899 (chromium.chrome)
pid: 7899, tid: 7899, name: chromium.chrome  >>> org.chromium.chrome <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x14
     r0 00000000  r1 d275b365  r2 00000001  r3 00000000
     r4 c9e50c28  r5 ff8c769c  r6 c9aaaf40  r7 ff8c7998
     r8 00000000  r9 ede5a000  sl ff8c7790  fp ff8c771c
     ip d05c1f8b  sp ff8c75a8  lr d275b371  pc d05c1f8a

Stack Trace:
  RELADDR   FUNCTION                                                           FILE:LINE
  00c75f8a  ui::SimpleMenuModel::GetMenuModelDelegate() const                  /home/ijamardo/Coding/chromium/src/ui/base/models/simple_menu_model.cc:412:0
  02e0f36d  device::ARCoreDevice::PauseTracking()                              /home/ijamardo/Coding/chromium/src/chrome/browser/android/vr/arcore_device/arcore_device.cc:259:22
  02e4a175  Java_org_chromium_chrome_browser_ar_ArCoreJavaUtils_nativeOnPause  /home/ijamardo/Coding/chromium/src/out/build/gen/chrome/browser/android/ar/ar_jni_headers/ar/jni/ArCoreJavaUtils_jni.h:46:18
  000351eb  <UNKNOWN>                                                          /data/app/org.chromium.chrome--u1BbFU3ZxNn59t3rKJTMA==/oat/arm/base.odex

 
Labels: -Pri-3 OS-Android Pri-1
Resolved. It was related to not having the GL thread instance created when receiving the pause/resume events. The GL thread is instantiated when the mailbox to surface bridge is instantiated. The fix includes storing a flag to identify the situation in the case of resume and request to resume the GL thread once is up.
Components: Blink>WebVR
Status: Assigned (was: Untriaged)
WontFix?
Resolved in CL 1046112.
Project Member

Comment 4 by bugdroid1@chromium.org, May 31 2018

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

commit 5bd15ff64323a54e5e0b33011209355eeec7fad4
Author: Iker Jamardo <ijamardo@chromium.org>
Date: Thu May 31 07:07:03 2018

WebXR: Add pause/resume for ARCoreDevice

Add pause/resume on focus changes in ARCoreDevice to correctly
pause/resume ARCore.

Bug:  838513 ,  837550 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr
Change-Id: I40f11c48c6a9f15b3a558546e017545f0ab66a1d
Reviewed-on: https://chromium-review.googlesource.com/1046112
Reviewed-by: David Dorwin <ddorwin@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Commit-Queue: Iker Jamardo <ijamardo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563168}
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore.h
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_device.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_device.h
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_gl.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_gl.h
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_impl.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/arcore_impl.h
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/fake_arcore.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/android/vr/arcore_device/fake_arcore.h
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/chrome/browser/vr/service/vr_display_host.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/device/vr/vr_device_base.cc
[modify] https://crrev.com/5bd15ff64323a54e5e0b33011209355eeec7fad4/device/vr/vr_device_base.h

Status: Fixed (was: Assigned)
This is resolved, though I'm not sure it was was ever in the trunk.
Components: Blink>WebXR

Sign in to add a comment