PipelineIntegrationTest.BasicPlayback crashes if test run with --single-process-tests |
||
Issue description
Chrome Version: ToT
OS: Windows, Linux
What steps will reproduce the problem?
(1) Build a debug version of media_unittests
(2) Run "media_unittests --single-process-tests"
What is the expected result?
All tests pass
What happens instead?
PipelineIntegrationTest.BasicPlayback crashes. If run without any options, the test passes. If run with "--single-process-tests --gtest_filter=PipelineIntegrationTest.BasicPlayback", the test passes.
Crash as reported on Windows:
Backtrace:
media::AudioRendererImpl::Initialize [0x0000000000FBB9C4+2596]
media::RendererImpl::InitializeAudioRenderer [0x0000000000FD34DD+1213]
media::RendererImpl::Initialize [0x0000000000FD2EF6+1142]
media::PipelineImpl::RendererWrapper::InitializeRenderer [0x0000000000C467A8+1032]
base::internal::FunctorTraits<void (__cdecl media::PipelineImpl::RendererWrapper::*)(base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64) __ptr64,void>::Invoke<base::WeakPtr<media::PipelineImpl::RendererWrapper> const & __ptr64,ba [0x0000000000C2E91A+74]
base::internal::InvokeHelper<1,void>::MakeItSo<void (__cdecl media::PipelineImpl::RendererWrapper::*const & __ptr64)(base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64) __ptr64,base::WeakPtr<media::PipelineImpl::RendererWrapper> [0x0000000000C3155C+124]
base::internal::Invoker<base::internal::BindState<void (__cdecl media::PipelineImpl::RendererWrapper::*)(base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64) __ptr64,base::WeakPtr<media::PipelineImpl::RendererWrapper> >,void __cde [0x0000000000C337FE+190]
base::internal::Invoker<base::internal::BindState<void (__cdecl media::PipelineImpl::RendererWrapper::*)(base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64) __ptr64,base::WeakPtr<media::PipelineImpl::RendererWrapper> >,void __cde [0x0000000000C4E7B2+82]
base::Callback<void __cdecl(base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64),1,1>::Run [0x0000000000C62AA6+70]
media::SerialRunner::RunNextInSeries [0x0000000000C6309A+554]
base::internal::FunctorTraits<void (__cdecl media::SerialRunner::*)(enum media::PipelineStatus) __ptr64,void>::Invoke<base::WeakPtr<media::SerialRunner> const & __ptr64,enum media::PipelineStatus> [0x0000000000C605CA+58]
base::internal::InvokeHelper<1,void>::MakeItSo<void (__cdecl media::SerialRunner::*const & __ptr64)(enum media::PipelineStatus) __ptr64,base::WeakPtr<media::SerialRunner> const & __ptr64,enum media::PipelineStatus> [0x0000000000C60A76+102]
base::internal::Invoker<base::internal::BindState<void (__cdecl media::SerialRunner::*)(enum media::PipelineStatus) __ptr64,base::WeakPtr<media::SerialRunner> >,void __cdecl(enum media::PipelineStatus)>::RunImpl<void (__cdecl media::SerialRunner::*const & [0x0000000000C60E8E+190]
base::internal::Invoker<base::internal::BindState<void (__cdecl media::SerialRunner::*)(enum media::PipelineStatus) __ptr64,base::WeakPtr<media::SerialRunner> >,void __cdecl(enum media::PipelineStatus)>::Run [0x0000000000C62CC2+82]
base::Callback<void __cdecl(enum media::PipelineStatus),1,1>::Run [0x0000000000BED6C5+69]
base::internal::FunctorTraits<base::Callback<void __cdecl(enum media::PipelineStatus),1,1>,void>::Invoke<base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64,enum media::PipelineStatus const & __ptr64> [0x0000000000BECAF3+211]
base::internal::InvokeHelper<0,void>::MakeItSo<base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64,enum media::PipelineStatus const & __ptr64> [0x0000000000BECBF7+55]
base::internal::Invoker<base::internal::BindState<base::Callback<void __cdecl(enum media::PipelineStatus),1,1>,enum media::PipelineStatus>,void __cdecl(void)>::RunImpl<base::Callback<void __cdecl(enum media::PipelineStatus),1,1> const & __ptr64,std::tuple [0x0000000000BECCB2+162]
base::internal::Invoker<base::internal::BindState<base::Callback<void __cdecl(enum media::PipelineStatus),1,1>,enum media::PipelineStatus>,void __cdecl(void)>::Run [0x0000000000BED713+51]
base::Callback<void __cdecl(void),0,0>::Run [0x000000018004F5A0+64]
base::debug::TaskAnnotator::RunTask [0x00000001800DE50D+765]
base::MessageLoop::RunTask [0x0000000180193776+774]
base::MessageLoop::DeferOrRunPendingTask [0x00000001801913F2+66]
base::MessageLoop::DoWork [0x0000000180191CE5+421]
base::MessagePumpDefault::Run [0x000000018019A6D7+55]
base::MessageLoop::Run [0x0000000180193320+256]
base::RunLoop::Run [0x00000001802A02DF+255]
media::PipelineIntegrationTestBase::StartInternal [0x0000000140EDF630+2768]
media::PipelineIntegrationTestBase::StartWithFile [0x0000000140EE0B31+545]
media::PipelineIntegrationTestBase::Start [0x0000000140EDE8DF+95]
media::PipelineIntegrationTest_BasicPlayback_Test::TestBody [0x0000000140BC64E6+86]
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void> [0x0000000140CBEBD8+72]
testing::Test::Run [0x0000000140CE35AE+158]
testing::TestInfo::Run [0x0000000140CE38A1+209]
testing::TestCase::Run [0x0000000140CE3701+225]
testing::internal::UnitTestImpl::RunAllTests [0x0000000140CE3E0D+813]
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> [0x0000000140CBECF8+72]
testing::UnitTest::Run [0x0000000140CE3A5C+236]
RUN_ALL_TESTS [0x0000000141151211+17]
base::TestSuite::Run [0x000000014115146C+140]
??$Invoke@PEAVTestSuiteNoAtExit@@$$V@?$FunctorTraits@P8TestSuite@base@@EAAHXZX@internal@base@@SAHP8TestSuite@2@EAAHXZ$$QEAPEAVTestSuiteNoAtExit@@@Z [0x0000000140BEF41A+26]
base::internal::InvokeHelper<0,int>::MakeItSo<int (__cdecl base::TestSuite::*const & __ptr64)(void) __ptr64,TestSuiteNoAtExit * __ptr64> [0x0000000140BEF4A7+55]
base::internal::Invoker<base::internal::BindState<int (__cdecl base::TestSuite::*)(void) __ptr64,base::internal::UnretainedWrapper<TestSuiteNoAtExit> >,int __cdecl(void)>::RunImpl<int (__cdecl base::TestSuite::*const & __ptr64)(void) __ptr64,std::tuple<ba [0x0000000140BEF55F+159]
base::internal::Invoker<base::internal::BindState<int (__cdecl base::TestSuite::*)(void) __ptr64,base::internal::UnretainedWrapper<TestSuiteNoAtExit> >,int __cdecl(void)>::Run [0x0000000140BEF9B3+51]
base::Callback<int __cdecl(void),1,1>::Run [0x0000000141148AAA+42]
base::LaunchUnitTests [0x00000001411479B9+553]
base::LaunchUnitTests [0x0000000141147749+137]
main [0x0000000140BEFA95+133]
invoke_main [0x0000000141322164+52] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:65)
__scrt_common_main_seh [0x0000000141322027+295] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
__scrt_common_main [0x0000000141321EEE+14] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:296)
mainCRTStartup [0x0000000141322189+9] (f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
BaseThreadInitThunk [0x00007FF98FA78364+20]
RtlUserThreadStart [0x00007FF991F87091+33]
,
Aug 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3dd1530cd0d464811f00a995e98487b8008cecc2 commit 3dd1530cd0d464811f00a995e98487b8008cecc2 Author: Andy Wu <tsunghung@chromium.org> Date: Tue Aug 29 03:05:19 2017 Fix one unit test: AudioRendererImplTest::BitstreamEndOfStream() SetMediaClient() changes the global variable |g_media_client|, which will affect all following test cases. It's safer to reset the variable once the test is done. BUG= 759857 Change-Id: If500359bd27f171c636ca19ae0413b1cc26c9df6 Reviewed-on: https://chromium-review.googlesource.com/639572 Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Andy Wu <tsunghung@chromium.org> Cr-Commit-Position: refs/heads/master@{#498002} [modify] https://crrev.com/3dd1530cd0d464811f00a995e98487b8008cecc2/media/renderers/audio_renderer_impl_unittest.cc
,
Aug 29 2017
Thank Dale for pointing out the issue. The CL is landed.
,
Aug 29 2017
,
Aug 29 2017
Thanks for the note, I don't think that's the same crash though. The one I'm seeing looks like a teardown issue in the fixture, and it's in content_unittests. |
||
►
Sign in to add a comment |
||
Comment 1 by dalecur...@chromium.org
, Aug 28 2017Status: Assigned (was: Available)