New issue
Advanced search Search tips

Issue 835445 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-XR
Proj-XR-VR



Sign in to add a comment

DCHECK when renderer crashes in webvr

Project Member Reported by billorr@chromium.org, Apr 20 2018

Issue description

My theory is that some of the optimized treewalk stuff has left elements with a stale state regarding which phase we are in.



[FATAL:ui_element.cc(454)] Check failed: kUpdatedComputedOpacity <= update_phase_ (3 vs. 1)kContentQuad

Stack Trace:
  RELADDR   FUNCTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             FILE:LINE
  v------>  std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__is_long() const                                                                                                                                                                                                                                                                                                                                                                                                                                                    ../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/string:1239:39
  v------>  std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::__get_pointer() const                                                                                                                                                                                                                                                                                                                                                                                                                                                ../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/string:1333:0
  v------>  std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::data() const                                                                                                                                                                                                                                                                                                                                                                                                                                                         ../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/string:1136:0
  023801b9  std::__ndk1::basic_stringbuf<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::seekoff(long long, std::__ndk1::ios_base::seekdir, unsigned int)                                                                                                                                                                                                                                                                                                                                                                                                  ../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/sstream:591:0
  024e7307  content::SessionStorageDatabase::SessionStorageDatabase(base::FilePath const&, scoped_refptr<base::SequencedTaskRunner>)                                                                                                                                                                                                                                                                                                                                                                                                                                             ../../content/browser/dom_storage/session_storage_database.cc:104:25
  0381849f  vr::UiElement::IsVisibleAndOpaque() const                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ../../chrome/browser/vr/elements/ui_element.cc:314:3
  0380af99  vr::VrShellGl::DrawIntoAcquiredFrame(short, base::TimeTicks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ../../chrome/browser/android/vr/vr_shell_gl.cc:1581:3
  v------>  vr::WebXrPresentationState::HaveAnimatingFrame()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ../../chrome/browser/android/vr/vr_shell_gl.h:226:38
  03808a4f  vr::VrShellGl::DrawFrame(short, base::TimeTicks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ../../chrome/browser/android/vr/vr_shell_gl.cc:1443:0
  0380802b  vr::VrShellGl::OnVSync(base::TimeTicks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ../../chrome/browser/android/vr/vr_shell_gl.cc:2185:3
  0159462b  void base::internal::Invoker<base::internal::BindState<void (media::ChunkDemuxer::*)(base::TimeDelta), base::internal::UnretainedWrapper<media::ChunkDemuxer> >, void (base::TimeDelta)>::RunImpl<void (media::ChunkDemuxer::* const&)(base::TimeDelta), std::__ndk1::tuple<base::internal::UnretainedWrapper<media::ChunkDemuxer> > const&, 0u>(void (media::ChunkDemuxer::* const&&&)(base::TimeDelta), std::__ndk1::tuple<base::internal::UnretainedWrapper<media::ChunkDemuxer> > const&&&, std::__ndk1::integer_sequence<unsigned int, 0u>, base::TimeDelta&&)  ../../base/bind_internal.h:604:12
  02c836f7  ??                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ??:0:0
  037f9eab  vr::AndroidVSyncHelper::AndroidVSyncHelper()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ../../chrome/browser/android/vr/android_vsync_helper.cc:17:0
  037f9df9  vr::AndroidVSyncHelper::OnVSync(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, long long)                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ../../chrome/browser/android/vr/android_vsync_helper.cc:34:3




 
repro - crash the render process while presenting webvr (may need to be very early in webvr presentation).

Specifically, ebVrTransitionTest#testNonExclusiveStopsDuringExclusive
WebVrInputTest#testAppButtonAfterPageStopsSubmitting_WebXr
WebVrInputTest#testPresentationLocksFocus_WebXr
WebVrInputTest#testControllerClicksRegisteredOnDaydream_WebXr
are crashing at revision 4435c448310d3850f31c65509f2dfce32ddf594e before I reverted a change.
For reference, I believe "a change" is referring to the one causing  issue 835047 .
Labels: -Pri-3 Pri-1
This seems to be occurring 100% of the time on the FYI bot for the following tests with Daydream View paired. Bumping up the priority since it's making it difficult to tell when other things break.

VrShellTransitionTest#testWebXrReEntryFromVrBrowser
VrShellTransitionTest#testWebVrReEntryFromVrBrowser
VrFeedbackInfoBarTest#testExitPresentationInVr
WebVrInputTest#testAppButtonExitsPresentation_WebXr__ChromeTabbedActivity
VrFeedbackInfoBarTest#testExitPresentationInVr_WebXr
Issue 836045 has been merged into this issue.
Owner: cjgrant@chromium.org
Status: Started (was: Available)
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 24 2018

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

commit bc45151af3092838c1d02f1ca43f504932ae34b5
Author: Christopher Grant <cjgrant@chromium.org>
Date: Tue Apr 24 18:12:01 2018

VR: Fix element visibility checks in the optmimized tree case

Elements are possibly visible only if they ran the opacity computation
step.

BUG= 835445 
R=mthiesse

Change-Id: Ib45d933c36d509a8d0f224a1d2080fc88de78412
Reviewed-on: https://chromium-review.googlesource.com/1026071
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553199}
[modify] https://crrev.com/bc45151af3092838c1d02f1ca43f504932ae34b5/chrome/browser/vr/elements/ui_element.cc

Status: Fixed (was: Started)
Bots look green now.
Labels: VR-Caught-By-Test
Labels: Test-Complete
Labels: -VR-Caught-By-Test XR-Caught-By-Test

Sign in to add a comment