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

Issue 868082 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocked on:
issue 867536



Sign in to add a comment

WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsH264 and WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames fails on win10_chromium_x64_rel_ng with proprietary codecs enabled

Project Member Reported by kbr@chromium.org, Jul 26

Issue description

In  Issue 867536 , the proprietary_codecs flag is being turned on on more trybots and waterfall bots. In this tryjob:
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win10_chromium_x64_rel_ng/58812

it's found that WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsH264 fails. It looks like because these tests run on VMs, no hardware accelerated encoding/decoding is available. It's not clear to me whether this is why the test fails, or whether it's because of the following stack trace which shows up in the logs:

[5312:2372:0726/123820.883:FATAL:thread_restrictions.cc(105)] Check failed: !g_base_sync_primitives_disallowed.Get().Get(). Waiting on a //base sync primitive is not allowed on this thread to prevent jank and deadlock. If waiting on a //base sync primitive is unavoidable, do it within the scope of a ScopedAllowBaseSyncPrimitives. If in a test, use ScopedAllowBaseSyncPrimitivesForTesting.

Backtrace:
	base::debug::StackTrace::StackTrace [0x00007FF6629A7F44+36]
	logging::LogMessage::~LogMessage [0x00007FF6629C4DB2+98]
	base::internal::AssertBaseSyncPrimitivesAllowed [0x00007FF662A2B33B+123]
	base::WaitableEvent::Wait [0x00007FF662A123A2+34]
	content::RTCVideoEncoder::InitEncode [0x00007FF6668576BB+971]
	webrtc::CreateVideoEncoderSoftwareFallbackWrapper [0x00007FF666830883+1283]
	webrtc::VCMGenericEncoder::InitEncode [0x00007FF664694086+374]
	webrtc::VCMEncoderDataBase::SetSendCodec [0x00007FF664695C63+419]
	webrtc::vcm::VideoSender::RegisterSendCodec [0x00007FF6634C5A1D+109]
	webrtc::VideoStreamEncoder::ReconfigureEncoder [0x00007FF66162247D+893]
	webrtc::VideoStreamEncoder::MaybeEncodeVideoFrame [0x00007FF661623008+408]
	webrtc::VideoStreamEncoder::VideoSourceProxy::ResetPixelFpsCount [0x00007FF661625748+680]
	rtc::TaskQueue::Impl::RunTask [0x00007FF66162B51E+126]
	base::internal::Invoker<base::internal::BindState<void (__cdecl rtc::TaskQueue::Impl::*)(std::unique_ptr<rtc::QueuedTask,std::default_delete<rtc::QueuedTask> >) __ptr64,scoped_refptr<rtc::TaskQueue::Impl>,base::internal::PassedWrapper<std::unique_ptr<rtc: [0x00007FF66162BAF1+81]
	base::debug::TaskAnnotator::RunTask [0x00007FF663CD2548+376]
	base::internal::TaskTracker::RunOrSkipTask [0x00007FF663D18245+1173]
	base::internal::TaskTracker::RunAndPopNextTask [0x00007FF663D1748B+507]
	base::internal::SchedulerWorker::RunWorker [0x00007FF665F32100+960]
	base::internal::SchedulerWorker::RunPooledWorker [0x00007FF665F31C20+32]
	base::PlatformThread::GetCurrentThreadPriority [0x00007FF662A277AC+572]
	BaseThreadInitThunk [0x00007FFE73452774+20]
	RtlUserThreadStart [0x00007FFE74020D51+33]

I'm going to try to narrowly disable this test only on this configuration.

 
It looks like the lowest-cost way of making this work is to pass the command line argument:
--disable-features=WebRTC-H264WithOpenH264FFmpeg

to the test executable on the affected waterfall bots.

Attempting to do this turned up two more failures:
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win10_chromium_x64_rel_ng/58962

WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsH264 in network_service_browser_tests

WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames in content_browsertests

It's strange that the WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames failure didn't show up in the first try job of this CL:
https://chromium-review.googlesource.com/1150450

Cc: phoglund@chromium.org mflodman@chromium.org
Need help from the WebRTC team to figure out how to remove this flag:
--disable-features=WebRTC-H264WithOpenH264FFmpeg

from a few bots where it was added in order to fix  Issue 867536 . Thanks!

Labels: -Pri-2 Pri-1
Summary: WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsH264 and WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames fails on win10_chromium_x64_rel_ng with proprietary codecs enabled (was: WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsH264 fails on win10_chromium_x64_rel_ng with proprietary codecs enabled)
WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames has also been reported flaky by FindIt here:

https://chromium-review.googlesource.com/1150450

in viz_content_browsertests after turning on the proprietary codecs:

https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vNmM4M2QyMWJlNmIwNGI5YjhhNTM0OTg5MzI2MzA5YzNmZjNjNGUzZgw

even after passing --disable-features=WebRTC-H264WithOpenH264FFmpeg to the test harness in:

https://chromium-review.googlesource.com/1154141

The test is timing out per these FindIt jobs:

https://chromium-swarm.appspot.com/task?id=3f0aeb0daba58910&refresh=10&show_raw=1

I'm not sure what to do about this beyond disabling the test on Windows. Could the WebRTC team please triage this? Thanks.

Cc: emir...@chromium.org
Components: Blink>MediaStream>CaptureFromElement
Oops, it looks like the sheriffs already disabled this test on Windows in  Issue 869723 . Let me associate these bugs.

 Issue 869723  has been merged into this issue.
Re #2: I'm confused, in #1 it seems you want to add the flag, but in #2 you want to remove it?

It appears to be set here: https://cs.chromium.org/chromium/src/testing/buildbot/chromium.win.json?type=cs&q=%22--disable-features%3DWebRTC-H264WithOpenH264FFmpeg%22&sq=package:chromium&g=0&l=811
Components: -Internals>WebRTC
Labels: -Pri-1 Pri-2
Lowering priority to 2 since RunsAudioVideoWebRTCCallInTwoTabsH264 doesn't seem to flaking much nowadays, and VerifyCanvasCaptureOffscreenCanvasFrames is disabled.
phoglund@: when enabling the proprietary video codecs on these bots in  Issue 867536 , some WebRTC tests started failing, and I added the flag --disable-features=WebRTC-H264WithOpenH264FFmpeg to a couple of these test suites in these CLs:

https://chromium-review.googlesource.com/1150450
https://chromium-review.googlesource.com/1154141

Looking for help from the WebRTC team to figure out why the tests were failing when the proprietary codecs are compiled in, to fix that issue, and remove the flag.

Owner: guidou@chromium.org
Status: Assigned (was: Untriaged)
Sure.

Guido, can you help find a suitable owner?
Components: Blink>WebRTC>Video
Components: -Internals>GPU>Video
Owner: holmer@chromium.org
holmer@: Since this is H264-related, can you help with triage?

Sign in to add a comment