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

Issue 759857 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 3
Type: Bug



Sign in to add a comment

PipelineIntegrationTest.BasicPlayback crashes if test run with --single-process-tests

Project Member Reported by jrumm...@chromium.org, Aug 28 2017

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]
 
Owner: tsunghung@chromium.org
Status: Assigned (was: Available)
Hi Andy, I think the issue is the ARI tests which use SetMediaClient - they need to set the old one back when done.
Project Member

Comment 2 by bugdroid1@chromium.org, 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

Status: Fixed (was: Assigned)
Thank Dale for pointing out the issue. The CL is landed.
Cc: scottmg@chromium.org
 Issue 759916  has been merged into this issue.
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