New issue
Advanced search Search tips

Issue 831243 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

WebXR renderer crash due to no presentation provider

Project Member Reported by bsheedy@chromium.org, Apr 10 2018

Issue description

Starting around April 7th, we've started getting flaky renderer crashes in WebXR tests with Daydream View paired. This appears to be on presentation exit, but I'm not 100% sure. Symbolized stack trace is:

FATAL:xr_frame_provider.cc(326)] Check failed: presentation_provider_. 
Stack Trace:
  RELADDR   FUNCTION                                                                                                                                    FILE:LINE
  00e53175  logging::LogMessage::~LogMessage()                                                                                                          ../../base/logging.cc:594:29
  040274bb  blink::XRFrameProvider::SubmitWebGLLayer(blink::XRWebGLLayer*, bool)                                                                        ../../third_party/blink/renderer/modules/xr/xr_frame_provider.cc:326:3
  04029345  blink::XRSession::OnFrame(std::__ndk1::unique_ptr<blink::TransformationMatrix, std::__ndk1::default_delete<blink::TransformationMatrix> >)  ../../third_party/blink/renderer/modules/xr/xr_session.cc:341:25
  04027101  blink::XRFrameProvider::ProcessScheduledFrame(double)                                                                                       ../../third_party/blink/renderer/modules/xr/xr_frame_provider.cc:299:25
  00e3a4c1  base::OnceCallback<void ()>::Run() &&                                                                                                       ../../base/callback.h:95:12
  v------>  WTF::ThreadCheckingCallbackWrapper<base::OnceCallback<void ()>, void ()>::RunInternal(base::OnceCallback<void ()>*)                         ../../third_party/blink/renderer/platform/wtf/functional.h:258:33
  0281d01b  WTF::ThreadCheckingCallbackWrapper<base::OnceCallback<void ()>, void ()>::Run()                                                             ../../third_party/blink/renderer/platform/wtf/functional.h:245:0
  00e3a4c1  base::OnceCallback<void ()>::Run() &&                                                                                                       ../../base/callback.h:95:12
  00e42c9f  base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)                                                                        ../../base/debug/task_annotator.cc:101:33
  02a02fdf  blink::scheduler::internal::ThreadControllerImpl::DoWork(blink::scheduler::internal::SequencedTaskSource::WorkType)                         ../../third_party/blink/renderer/platform/scheduler/base/thread_controller_impl.cc:162:21
  00e3a4c1  base::OnceCallback<void ()>::Run() &&                                                                                                       ../../base/callback.h:95:12
  00e42c9f  base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)                                                                        ../../base/debug/task_annotator.cc:101:33
  00e57599  base::internal::IncomingTaskQueue::RunTask(base::PendingTask*)                                                                              ../../base/message_loop/incoming_task_queue.cc:124:19
  00e59049  base::MessageLoop::RunTask(base::PendingTask*)                                                                                              ../../base/message_loop/message_loop.cc:354:25
  00e5924f  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)                                                                                 ../../base/message_loop/message_loop.cc:364:5
  00e5931d  base::MessageLoop::DoWork()                                                                                                                 ../../base/message_loop/message_loop.cc:408:16
  00e5a0df  base::MessagePumpDefault::Run(base::MessagePump::Delegate*)                                                                                 ../../base/message_loop/message_pump_default.cc:37:31
  00e58e0f  base::MessageLoop::Run(bool)                                                                                                                ../../base/message_loop/message_loop.cc:306:12
  00e6f687  base::RunLoop::Run()                                                                                                                        ../../base/run_loop.cc:130:14
  040dc747  content::RendererMain(content::MainFunctionParams const&)                                                                                   ../../content/renderer/renderer_main.cc:248:23
  02acd3b9  content::ContentMainRunnerImpl::Run()                                                                                                       ../../content/app/content_main_runner.cc:706:12
  01b37f19  service_manager::Main(service_manager::MainParams const&)                                                                                   ../../services/service_manager/embedder/main.cc:453:29
  v------>  content::JNI_ContentMain_Start(_JNIEnv*, base::android::JavaParamRef<_jclass*> const&)                                                      ../../content/app/android/content_main.cc:42:10
  02accc5d  Java_org_chromium_content_app_ContentMain_nativeStart                                                                                       gen/content/public/android/content_jni_headers/content/jni/ContentMain_jni.h:45:0
 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 12 2018

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

commit ca41be87c3a9f362068e03090916f969460800f7
Author: bsheedy <bsheedy@chromium.org>
Date: Thu Apr 12 06:43:51 2018

Remove DCHECK from xr_frame_provider

Replaces a flaky check in xr_frame_provider with an early return since
it's a valid state to be in, e.g. when exiting presentation.

Bug:  831243 
Change-Id: Ie506095b5b5a1083ad669a000857a70b40f42a60
Reviewed-on: https://chromium-review.googlesource.com/1007622
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550051}
[modify] https://crrev.com/ca41be87c3a9f362068e03090916f969460800f7/third_party/blink/renderer/modules/xr/xr_frame_provider.cc

Status: Fixed (was: Available)
Owner: bsheedy@chromium.org
Status: Started (was: Fixed)
Looks like this is still happening sometimes. Could be a separate issue, though. I'll investigate later today.
Status: Fixed (was: Started)
Separate issue. Filed  Issue 833620  for it.
Labels: Test-Complete
Components: Internals>XR
Labels: -VR-Caught-By-Test XR-Caught-By-Test

Sign in to add a comment