New issue
Advanced search Search tips

Issue 666911 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-XR



Sign in to add a comment

WebVR: Pages that use the GVR controller crash on exit.

Project Member Reported by bajones@chromium.org, Nov 18 2016

Issue description

Version: Chrome 57.0.2925.0
OS: Android

Visit a WebVR page that uses tracked controllers like https://webvr.info/samples/XX-vr-controllers.html with a Daydream View headset/controller and enter/exit VR mode. Upon closing the page after that it may crash. Example log:

11-17 12:18:10.688 28089 28089 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-17 12:18:10.689 28089 28089 F DEBUG   : Build fingerprint: 'google/marlin/marlin:7.1.1/NMF26I/3450764:userdebug/dev-keys'
11-17 12:18:10.689 28089 28089 F DEBUG   : Revision: '0'
11-17 12:18:10.689 28089 28089 F DEBUG   : ABI: 'arm64'
11-17 12:18:10.689 28089 28089 F DEBUG   : pid: 24905, tid: 25223, name: Thread-28  >>> org.chromium.chrome <<<
11-17 12:18:10.689 28089 28089 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
11-17 12:18:10.689 28089 28089 F DEBUG   :     x0   0000000000000000  x1   00000074915adc68  x2   0000000000000002  x3   0000000000000030
11-17 12:18:10.689 28089 28089 F DEBUG   :     x4   0000000000000008  x5   00000074945fb3c0  x6   00000074c0925000  x7   0000000000000000
11-17 12:18:10.690 28089 28089 F DEBUG   :     x8   000000749db7c000  x9   0000000000000002  x10  0000000000000001  x11  0000000000000000
11-17 12:18:10.690 28089 28089 F DEBUG   :     x12  000000748ef08c48  x13  000000749c51e300  x14  0000000000000004  x15  0000000000000001
11-17 12:18:10.690 28089 28089 F DEBUG   :     x16  00000074a054e700  x17  00000074be09bbf4  x18  00000074bc4b2760  x19  000000748ee57d80
11-17 12:18:10.690 28089 28089 F DEBUG   :     x20  000000749bdfeca0  x21  00000074945fa721  x22  00000074945fa719  x23  0000000000000001
11-17 12:18:10.690 28089 28089 F DEBUG   :     x24  000000749bdfeed0  x25  000000749bdfed98  x26  00000074a03b9370  x27  000000748f1fa5b0
11-17 12:18:10.690 28089 28089 F DEBUG   :     x28  0000007495194640  x29  000000749bdfecd0  x30  0000007491338558
11-17 12:18:10.690 28089 28089 F DEBUG   :     sp   000000749bdfec80  pc   000000749133855c  pstate 0000000060000000

Unknown Android release, consider --[no-]packed-relocation-adjustments options
Reading Android symbols from: /usr/local/google/home/klausw/chromium/src
Searching for Chrome symbols from within: /usr/local/google/home/klausw/chromium/src/out-gn/Debug/lib.unstripped:/usr/local/google/home/klausw/chromium/src/out-gn/Debug/lib:/usr/local/google/home/klausw/chromium/src/out-gn/Debug
Find ABI:arm64
Using toolchain from: /usr/local/google/home/klausw/chromium/src/third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-

pid: 24905, tid: 25223, name: Thread-28  >>> org.chromium.chrome <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0

Stack Trace:
  RELADDR   FUNCTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                            FILE:LINE
  000000000026955c  <unknown>                                                                                                                                                                                                                                                                                                                                                                                                                                                                           /data/app/com.google.vr.vrcore-1/lib/arm64/libvrcore_native.so
  v------>  gvr::UserPrefs::GetControllerHandedness() const                                                                                                                                                                                                                                                                                                                                                                                                                                     /usr/local/google/home/klausw/chromium/src/third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr.h:899
  000000000001bb14  device::GvrGamepadDataFetcher::GetGamepadData(bool)                                                                                                                                                                                                                                                                                                                                                                                                                                 /usr/local/google/home/klausw/chromium/src/device/vr/android/gvr/gvr_gamepad_data_fetcher.cc:101
  00000000000063b4  device::GamepadProvider::DoPoll()                                                                                                                                                                                                                                                                                                                                                                                                                                                   /usr/local/google/home/klausw/chromium/src/device/gamepad/gamepad_provider.cc:236
  v------>  void base::internal::FunctorTraits<void (device::GamepadProvider::*)(), void>::Invoke<device::GamepadProvider*>(void (device::GamepadProvider::*)(), device::GamepadProvider*&&)                                                                                                                                                                                                                                                                                                    /usr/local/google/home/klausw/chromium/src/base/bind_internal.h:214 
  v------>  void base::internal::InvokeHelper<false, void>::MakeItSo<void (device::GamepadProvider::* const&)(), device::GamepadProvider*>(void (device::GamepadProvider::* const&)(), device::GamepadProvider*&&)                                                                                                                                                                                                                                                                              /usr/local/google/home/klausw/chromium/src/base/bind_internal.h:286 
  v------>  void base::internal::Invoker<base::internal::BindState<void (device::GamepadProvider::*)(), base::internal::UnretainedWrapper<device::GamepadProvider> >, void ()>::RunImpl<void (device::GamepadProvider::* const&)(), std::__ndk1::tuple<base::internal::UnretainedWrapper<device::GamepadProvider> > const&, 0ul>(void (device::GamepadProvider::* const&)(), std::__ndk1::tuple<base::internal::UnretainedWrapper<device::GamepadProvider> > const&, base::IndexSequence<0ul>)  /usr/local/google/home/klausw/chromium/src/base/bind_internal.h:364 
  00000000000059b0  base::internal::Invoker<base::internal::BindState<void (device::GamepadProvider::*)(), base::internal::UnretainedWrapper<device::GamepadProvider> >, void ()>::Run(base::internal::BindStateBase*)                                                                                                                                                                                                                                                                                  /usr/local/google/home/klausw/chromium/src/base/bind_internal.h:342
  v------>  base::internal::RunMixin<base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0> >::Run() &&                                                                                                                                                                                                                                                                                                                                                            /usr/local/google/home/klausw/chromium/src/base/callback.h:47
  00000000000977dc  base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)                                                                                                                                                                                                                                                                                                                                                                                                                /usr/local/google/home/klausw/chromium/src/base/debug/task_annotator.cc:52
  00000000000b7e60  base::MessageLoop::RunTask(base::PendingTask*)                                                                                                                                                                                                                                                                                                                                                                                                                                      /usr/local/google/home/klausw/chromium/src/base/message_loop/message_loop.cc:413
  00000000000b8868  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)                                                                                                                                                                                                                                                                                                                                                                                                                         /usr/local/google/home/klausw/chromium/src/base/message_loop/message_loop.cc:422
  00000000000b9790  base::MessageLoop::DoDelayedWork(base::TimeTicks*)                                                                                                                                                                                                                                                                                                                                                                                                                                  /usr/local/google/home/klausw/chromium/src/base/message_loop/message_loop.cc:554
  00000000000ba0e0  base::MessagePumpDefault::Run(base::MessagePump::Delegate*)                                                                                                                                                                                                                                                                                                                                                                                                                         /usr/local/google/home/klausw/chromium/src/base/message_loop/message_pump_default.cc:39
  00000000000b799c  base::MessageLoop::RunHandler()                                                                                                                                                                                                                                                                                                                                                                                                                                                     /usr/local/google/home/klausw/chromium/src/base/message_loop/message_loop.cc:378
  00000000000d8628  base::RunLoop::Run()                                                                                                                                                                                                                                                                                                                                                                                                                                                                /usr/local/google/home/klausw/chromium/src/base/run_loop.cc:35
  00000000001025f0  base::Thread::ThreadMain()                                                                                                                                                                                                                                                                                                                                                                                                                                                          /usr/local/google/home/klausw/chromium/src/base/threading/thread.cc:333
  00000000000fcb98  ThreadFunc                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /usr/local/google/home/klausw/chromium/src/base/threading/platform_thread_posix.cc:71
  0000000000067efc  __pthread_start(void*)+196                                                                                                                                                                                                                                                                                                                                                                                                                                                          /system/lib64/libc.so
  000000000001d980  __start_thread+16                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib64/libc.so

 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 19 2016

Labels: -Pri-3 Merge-Request-56 Pri-1
Status: Fixed (was: Assigned)

Comment 3 by dimu@chromium.org, Nov 19 2016

Labels: -Merge-Request-56 Merge-Approved-56 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M56 (branch: 2924)
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 19 2016

Labels: -merge-approved-56 merge-merged-2924
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78a1649a22329a10495328552bc70d1ae1c5b4af

commit 78a1649a22329a10495328552bc70d1ae1c5b4af
Author: Brandon Jones <bajones@chromium.org>
Date: Sat Nov 19 07:01:43 2016

Fixed crash when exiting page using GVR controller w/ the gamepad API

BUG= 666911 

Review-Url: https://codereview.chromium.org/2513143002
Cr-Commit-Position: refs/heads/master@{#433358}
(cherry picked from commit 8037248c76fe651086adce2706c50a3cf693ff5b)

Review URL: https://codereview.chromium.org/2511393003 .

Cr-Commit-Position: refs/branch-heads/2924@{#7}
Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059}

[modify] https://crrev.com/78a1649a22329a10495328552bc70d1ae1c5b4af/device/vr/android/gvr/gvr_gamepad_data_fetcher.cc
[modify] https://crrev.com/78a1649a22329a10495328552bc70d1ae1c5b4af/device/vr/android/gvr/gvr_gamepad_data_fetcher.h

Labels: M-56
Components: Blink>WebXR

Sign in to add a comment