Issue metadata
Sign in to add a comment
|
ContextProviderCommandBuffer unregister itself in a racy way from MemoryDumpProvider |
||||||||||||||||||||||||
Issue descriptionThis issue came up while enabling a feature in WebRtcCaptureFromElementBrowserTest.CaptureFromOpaqueCanvas2DHandlesContextLoss and WebRtcCaptureFromElementBrowserTest.CaptureFromCanvas2DHandlesContextLoss tests. This CL just enables use of GpuMemoryBufferVideoFrame for real-time video from WebRTC, i.e. Hangouts. https://chromium-review.googlesource.com/c/chromium/src/+/963642 [1:1:0327/094048.940675:FATAL:memory_dump_manager.cc(426)] Check failed: (*mdp_iter)->task_runner && (*mdp_iter)->task_runner->RunsTasksInCurrentSequence(). MemoryDumpProvider "ContextProviderCommandBuffer" attempted to unregister itself in a racy way. Please file a crbug. #0 0x000002e2b9dc base::debug::StackTrace::StackTrace() #1 0x000002e3f4ab logging::LogMessage::~LogMessage() #2 0x000002e9be3a base::trace_event::MemoryDumpManager::UnregisterDumpProviderInternal() #3 0x00000156623e ui::ContextProviderCommandBuffer::~ContextProviderCommandBuffer() #4 0x00000156645e ui::ContextProviderCommandBuffer::~ContextProviderCommandBuffer() #5 0x000005c32afd content::GpuVideoAcceleratorFactoriesImpl::ReleaseContextProvider() #6 0x000002e2c1b4 base::debug::TaskAnnotator::RunTask() #7 0x0000021a0664 blink::scheduler::internal::ThreadControllerImpl::DoWork() #8 0x000000f26afb _ZN4base8internal7InvokerINS0_9BindStateIMN5media26AudioDebugRecordingManagerEFvjEJNS_7WeakPtrIS4_EEjEEEFvvEE7RunOnceEPNS0_13BindStateBaseE #9 0x000002e2c1b4 base::debug::TaskAnnotator::RunTask() #10 0x000002ed4359 base::internal::IncomingTaskQueue::RunTask() #11 0x000002e4843b base::MessageLoop::RunTask() #12 0x000002e487da base::MessageLoop::DeferOrRunPendingTask() #13 0x000002e48a3c base::MessageLoop::DoWork() #14 0x000002e49c36 base::MessagePumpDefault::Run() #15 0x000002e47d69 base::MessageLoop::Run() #16 0x000002e6aae9 base::RunLoop::Run() #17 0x000005acebed content::RendererMain() These test have earlier surfaced some other bugs, see issue 820437 and issue 812186 . This one looks different but I wanted to get your opinion as it might be related to earlier issues. GpuVideoAcceleratorFactoriesImpl holds a scoped_refptr<ui::ContextProviderCommandBuffer> and releases on main thread. We also try to unregister MemoryDumpManager() which was registered on context_thread. What this CL does different than before is that it triggers the use of GpuVideoAcceleratorFactoriesImpl for video use case. https://cs.chromium.org/chromium/src/services/ui/public/cpp/gpu/context_provider_command_buffer.cc?type=cs&l=426 https://cs.chromium.org/chromium/src/base/trace_event/memory_dump_manager.cc?rcl=ac16acd7553a733b4b42ebd53e5cda8f39c04c4d&l=416 kylechar@ can you help with triage?
,
Mar 29 2018
This flake is showing up on the bots in WebGL tests (which are very complex and may hit race conditions more than most tests): https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20FYI%20Release%20%28NVIDIA%29/528 See failing step: webgl2_conformance_gl_tests on NVIDIA GPU on Windows on Windows-10 https://chromium-swarm.appspot.com/task?id=3c7960a87d3f9310&refresh=10&show_raw=1 Same trace. CC'ing GPU pixel wrangler.
,
Mar 29 2018
Increasing priority to P1. Our tests must be reliable, and this indicates a real bug in the product. Who can take this?
,
Mar 29 2018
,
Mar 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b0f69fcfb9dc32b5dd037dc6b99c968225d870d6 commit b0f69fcfb9dc32b5dd037dc6b99c968225d870d6 Author: Emircan Uysaler <emircan@chromium.org> Date: Thu Mar 29 03:23:53 2018 Release ContextProviderCommandBuffer reference on media thread GpuVideoAcceleratorFactoriesImpl calls BindToCurrentThread() on media task runner, so releasing the reference should also happen there to avoid race conditions. crrev.com/c/959432 introduced the regression, since we took care of initialization, but we didn't take care of destruction. Bug: 826539 , 580386 Change-Id: I2fff505b445bca7ff38343f6f1e5d3035a06714e Reviewed-on: https://chromium-review.googlesource.com/984438 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Daniele Castagna <dcastagna@chromium.org> Commit-Queue: Emircan Uysaler <emircan@chromium.org> Cr-Commit-Position: refs/heads/master@{#546725} [modify] https://crrev.com/b0f69fcfb9dc32b5dd037dc6b99c968225d870d6/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc [modify] https://crrev.com/b0f69fcfb9dc32b5dd037dc6b99c968225d870d6/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.h [modify] https://crrev.com/b0f69fcfb9dc32b5dd037dc6b99c968225d870d6/content/renderer/render_thread_impl.cc
,
Mar 29 2018
A bit late, seeing as you've got the fix already, but issue 820437 would be unrelated.
,
Mar 29 2018
,
Mar 29 2018
Thanks Emircan for your quick fix! |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by emir...@chromium.org
, Mar 28 2018Labels: OS-Chrome
Owner: dcasta...@chromium.org