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

Issue 689916 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

TabCaptureApiTest.Constraints browser test is flaky on chromium.webrtc and chromium.webrtc.fyi on Mac

Project Member Reported by olka@chromium.org, Feb 8 2017

Issue description

[9247:779:0207/171226.735399:ERROR:audio_manager_mac.cc(495)] Invalid device web-contents-media-stream://4:1?local_echo=false
[9247:779:0207/171226.736506:FATAL:begin_frame_source.cc(42)] Check failed: args.sequence_number > last_begin_frame_args_.sequence_number || args.source_id != last_begin_frame_args_.source_id. 
0   browser_tests                       0x000000010f0b1eec base::debug::StackTrace::StackTrace(unsigned long) + 28
1   browser_tests                       0x000000010f0d50f3 logging::LogMessage::~LogMessage() + 67
2   browser_tests                       0x00000001115cbc59 cc::BeginFrameObserverBase::OnBeginFrame(cc::BeginFrameArgs const&) + 249
3   browser_tests                       0x00000001115ce73d cc::ExternalBeginFrameSource::OnBeginFrame(cc::BeginFrameArgs const&) + 109
4   browser_tests                       0x00000001115cd7aa cc::DelayBasedBeginFrameSource::AddObserver(cc::BeginFrameObserver*) + 1354
5   browser_tests                       0x00000001115ce2b4 cc::ExternalBeginFrameSource::AddObserver(cc::BeginFrameObserver*) + 1092
6   browser_tests                       0x00000001115d61c3 cc::Scheduler::SetupNextBeginFrameIfNeeded() + 83
7   browser_tests                       0x00000001115d5076 cc::Scheduler::ProcessScheduledActions() + 918
8   browser_tests                       0x0000000111671c36 cc::SingleThreadProxy::SetNeedsCommit() + 150
9   browser_tests                       0x000000011161b743 cc::LayerTreeHost::SetNeedsCommit() + 19
10  browser_tests                       0x000000011152320b cc::Layer::RequestCopyOfOutput(std::__1::unique_ptr<cc::CopyOutputRequest, std::__1::default_delete<cc::CopyOutputRequest> >) + 427
11  browser_tests                       0x0000000111cedf74 ui::Layer::RequestCopyOfOutput(std::__1::unique_ptr<cc::CopyOutputRequest, std::__1::default_delete<cc::CopyOutputRequest> >) + 36
12  browser_tests                       0x000000010dd3932c content::DelegatedFrameHost::RequestCopyOfOutput(std::__1::unique_ptr<cc::CopyOutputRequest, std::__1::default_delete<cc::CopyOutputRequest> >) + 204
13  browser_tests                       0x000000010dd39486 content::DelegatedFrameHost::CopyFromCompositingSurfaceToVideoFrame(gfx::Rect const&, scoped_refptr<media::VideoFrame> const&, base::Callback<void (gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 294
14  browser_tests                       0x000000010dd36c87 content::BrowserCompositorMac::CopyFromCompositingSurfaceToVideoFrame(gfx::Rect const&, scoped_refptr<media::VideoFrame> const&, base::Callback<void (gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 295
15  browser_tests                       0x000000010dcdae77 content::(anonymous namespace)::WebContentsCaptureMachine::Capture(base::TimeTicks, scoped_refptr<media::VideoFrame>, base::Callback<void (base::TimeTicks, gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 487
16  browser_tests                       0x000000010dcdb079 base::internal::Invoker<base::internal::BindState<void (content::(anonymous namespace)::WebContentsCaptureMachine::*)(base::TimeTicks, scoped_refptr<media::VideoFrame>, base::Callback<void (base::TimeTicks, gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&), base::WeakPtr<content::(anonymous namespace)::WebContentsCaptureMachine> >, void (base::TimeTicks, scoped_refptr<media::VideoFrame>, base::Callback<void (base::TimeTicks, gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&)>::Run(base::internal::BindStateBase*, base::TimeTicks&&, scoped_refptr<media::VideoFrame>&&, base::Callback<void (base::TimeTicks, gfx::Rect const&, bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 233
17  browser_tests                       0x000000010dcdb561 content::(anonymous namespace)::ContentCaptureSubscription::OnEvent(content::(anonymous namespace)::FrameSubscriber*) + 401
18  browser_tests                       0x000000010dcdaf7e content::(anonymous namespace)::ContentCaptureSubscription::MaybeCaptureForRefresh() + 174
19  browser_tests                       0x000000010dcdaa13 content::(anonymous namespace)::WebContentsCaptureMachine::RenewFrameSubscription(bool) + 3971
20  browser_tests                       0x000000010dcdac1d base::internal::Invoker<base::internal::BindState<void (content::(anonymous namespace)::WebContentsCaptureMachine::*)(bool), base::WeakPtr<content::(anonymous namespace)::WebContentsCaptureMachine> >, void (bool)>::Run(base::internal::BindStateBase*, bool&&) + 189
21  browser_tests                       0x000000010da58ba3 content::WebContentsTracker::MaybeDoCallback(bool) + 291
22  browser_tests                       0x000000010da5891e content::WebContentsTracker::OnPossibleTargetChange(bool) + 622
23  browser_tests                       0x000000010da582bd content::WebContentsTracker::StartObservingWebContents(int, int) + 381
24  browser_tests                       0x000000010da58039 content::WebContentsTracker::Start(int, int, base::Callback<void (bool), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) + 425
25  browser_tests                       0x000000010dcd922d content::(anonymous namespace)::WebContentsCaptureMachine::InternalStart(scoped_refptr<media::ThreadSafeCaptureOracle>, media::VideoCaptureParams const&) + 861
26  browser_tests                       0x000000010dcd9632 base::internal::Invoker<base::internal::BindState<bool (content::(anonymous namespace)::WebContentsCaptureMachine::*)(scoped_refptr<media::ThreadSafeCaptureOracle>, media::VideoCaptureParams const&), base::internal::UnretainedWrapper<content::(anonymous namespace)::WebContentsCaptureMachine>, scoped_refptr<media::ThreadSafeCaptureOracle>, media::VideoCaptureParams>, bool ()>::Run(base::internal::BindStateBase*) + 82
27  browser_tests                       0x000000010d5c8e6f void base::internal::ReturnAsParamAdapter<bool>(base::Callback<bool (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, bool*) + 111
28  browser_tests                       0x000000010f1601eb base::(anonymous namespace)::PostTaskAndReplyRelay::RunTaskAndPostReply() + 27
29  browser_tests                       0x000000010f0b2841 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) + 225
30  browser_tests                       0x000000010f0ed959 base::MessageLoop::RunTask(base::PendingTask*) + 425
31  browser_tests                       0x000000010f0edd1c base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) + 44
32  browser_tests                       0x000000010f0ee213 base::MessageLoop::DoWork() + 467
33  browser_tests                       0x000000010f0f2e20 base::MessagePumpCFRunLoopBase::RunWork() + 48
34  browser_tests                       0x000000010f0d656a base::mac::CallWithEHFrame(void () block_pointer) + 10
35  browser_tests                       0x000000010f0f27f4 base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 68
36  CoreFoundation                      0x00007fff89494a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
37  CoreFoundation                      0x00007fff89486b8d __CFRunLoopDoSources0 + 269
38  CoreFoundation                      0x00007fff894861bf __CFRunLoopRun + 927
39  CoreFoundation                      0x00007fff89485bd8 CFRunLoopRunSpecific + 296
40  HIToolbox                           0x00007fff8cbb456f RunCurrentEventLoopInMode + 235
41  HIToolbox                           0x00007fff8cbb42ea ReceiveNextEventCommon + 431
42  HIToolbox                           0x00007fff8cbb412b _BlockUntilNextEventMatchingListInModeWithFilter + 71
43  AppKit                              0x00007fff8f1a98ab _DPSNextEvent + 978
44  AppKit                              0x00007fff8f1a8e58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
45  browser_tests                       0x000000010f25c750 __71-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke + 64
46  browser_tests                       0x000000010f0d656a base::mac::CallWithEHFrame(void () block_pointer) + 10
47  browser_tests                       0x000000010f25c689 -[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 169
48  AppKit                              0x00007fff8f19eaf3 -[NSApplication run] + 594
49  browser_tests                       0x000000010f0f39c7 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 359
50  browser_tests                       0x000000010f0f2c77 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 119
51  browser_tests                       0x000000010f0ed6a2 base::MessageLoop::RunHandler() + 354
52  browser_tests                       0x000000010f124349 base::RunLoop::Run() + 137
53  browser_tests                       0x000000010fad18a5 content::RunThisRunLoop(base::RunLoop*) + 53
54  browser_tests                       0x000000011564f932 extensions::ResultCatcher::GetNextResult() + 114
55  browser_tests                       0x000000010cdc3d75 ExtensionApiTest::RunExtensionTestImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, int) + 869
56  browser_tests                       0x000000010cdc40cc ExtensionApiTest::RunExtensionSubtest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) + 156
57  browser_tests                       0x000000010c4aa422 extensions::(anonymous namespace)::TabCaptureApiTest_Constraints_Test::RunTestOnMainThread() + 130
58  browser_tests                       0x000000010f1cd787 InProcessBrowserTest::RunTestOnMainThreadLoop() + 215
59  browser_tests                       0x000000010fa81e65 content::BrowserTestBase::ProxyRunTestOnMainThreadLoop() + 357
60  browser_tests                       0x000000010f261bb4 ChromeBrowserMainParts::PreMainMessageLoopRunImpl() + 4660
61  browser_tests                       0x000000010f26087e ChromeBrowserMainParts::PreMainMessageLoopRun() + 62

[120/120] TabCaptureApiTest.Constraints (2654 ms)
1 test failed:
    TabCaptureApiTest.Constraints (../../chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc:398)


First failing build https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Mac%20Tester/builds/37396
 

Comment 1 by olka@chromium.org, Feb 8 2017

Components: -Internals>Media>Audio
tommi/maxmorin/miu: the failure is not related to audio, but it's a good illustration of how we request tab capture parameters from the audio manager and then use the returned dummy ones, see the first line in the log and https://cs.chromium.org/chromium/src/media/audio/mac/audio_manager_mac.cc?q=audio_manager_mac.cc&dr&l=495

Comment 2 by olka@chromium.org, Feb 8 2017

Cc: -tommi@chromium.org -m...@chromium.org -maxmorin@chromium.org
Actually, I misses that the same happens on chromium.webrtc
starting here:
https://uberchromegw.corp.google.com/i/chromium.webrtc/builders/Mac%20Tester/builds/65138

Comment 3 by olka@chromium.org, Feb 8 2017

Summary: TabCaptureApiTest.Constraints browser test is flaky on chromium.webrtc and chromium.webrtc.fyi on Mac (was: TabCaptureApiTest.Constraints browser test is flaky on chromium.webrtc.fyi on Mac)

Comment 4 by olka@chromium.org, Feb 8 2017

Owner: staraz@chromium.org
Suspect that this CL may be related https://codereview.chromium.org/2612083002

staraz@ could you PTAL?
Cc: fsam...@chromium.org
Status: Started (was: Untriaged)
I came across the same stack trace while working on that CL.

Taking a look.
Project Member

Comment 6 by bugdroid1@chromium.org, Feb 10 2017

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

commit 04c49bf4845979aeff2c740a168de0a936b015af
Author: staraz <staraz@chromium.org>
Date: Fri Feb 10 23:10:31 2017

Move display_ From CompositorFrameSinkSupport To GpuDisplayCompositorFrameSink

With FrameGenerator and GpuDisplayCompositorFrameSink having a DisplayPrivate
interface, CompositorFrameSinkSupport doesn't need to know about cc::Display.

cc::Display::SetLocalSurfaceId() checks and early returns if
neither local surface id nor device scale factor has changed.
Therefore, FrameGenerator's calling SetLocalSurfaceId() before
every SubmitCompositorFrame() doesn't result in extra work.

This CL also fixes  bug 689869 . The bug was caused by
https://codereview.chromium.org/2612083002/.
In the previous CL, cc::Display::Initialize() was called inside
CompositorFrameSinkSupport(), where CompositorFrameSinkSupport
was passed as DisplayClient.
CompositorFrameSinkSupport::DisplayOutputSurfaceLost() wasn't
doing anything so the CompositorFrameSinkClient didn't get
notified when we lost CompositorFrameSink.

For  bug 676070 ,  689916  (flaky tests):
The two bugs are caused by CompositorFrameSinkSupport doesn't stop
observing BeginFrameSource when it should. By notifying client on output
surface lost correctly, DirectCompositorFrameSink detaches from client
and destroys CompositorFrameSinkSupport (and hence stop observing
BeginFrameSource) at the right time.

BUG= 688042 ,  689869 ,  676070 ,  689916 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2683583005
Cr-Commit-Position: refs/heads/master@{#449777}

[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/cc/ipc/display_compositor.mojom
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/cc/surfaces/compositor_frame_sink_support.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/cc/surfaces/compositor_frame_sink_support.h
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/cc/surfaces/compositor_frame_sink_support_unittest.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/display_compositor/gpu_compositor_frame_sink.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/display_compositor/gpu_compositor_frame_sink.h
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/display_compositor/gpu_display_compositor_frame_sink.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/display_compositor/gpu_display_compositor_frame_sink.h
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/display_compositor/gpu_offscreen_compositor_frame_sink.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/exo/compositor_frame_sink.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/components/exo/surface.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc
[modify] https://crrev.com/04c49bf4845979aeff2c740a168de0a936b015af/services/ui/ws/frame_generator.cc

Comment 7 by staraz@chromium.org, Feb 13 2017

Status: Fixed (was: Started)

Sign in to add a comment