The following two unit tests crash if run after other unit tests that allocate a base::TaskScheduler and don't destroy it, causing a CHECK-failure in the base::test::ScopedTaskEnvironment ctor.
[mfoltz@mfoltz-macpro /Users/mfoltz/chrome/src]$ ./out/Default/content_unittests --gtest_filter="MediaStream*" --vmodule="task_scheduler*=2"
<snip>
2 tests crashed:
MediaStreamRemoteVideoSourceTest.StartTrack (../../content/renderer/media/webrtc/media_stream_remote_video_source_unittest.cc:157)
MediaStreamVideoSourceTest.AddTrackAndStartSource (../../content/renderer/media/media_stream_video_source_unittest.cc:266)
Tests took 15 seconds.
I added some logging to show which tests allocate a TaskScheduler. I suppose the fix is with these tests, but base::TaskScheduler is a leaky singleton so I'm not sure what can be done? Maybe tests that use a "real" scheduler can't mix with a ScopedTaskEnvironment in the same process?
[ RUN ] MediaStreamVideoRendererSinkTest.StartStop
[16569:775:0911/112343.528041:688549119458832:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x0
[16569:775:0911/112343.528341:688549119757841:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[16569:775:0911/112343.528576:688549119993475:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[16569:775:0911/112343.536355:688549127773568:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[16569:775:0911/112343.536401:688549127817656:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[ OK ] MediaStreamVideoRendererSinkTest.StartStop (9 ms)
[ RUN ] MediaStreamVideoRendererSinkTest.EncodeVideoFrames
[16569:775:0911/112343.536727:688549128144569:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[ OK ] MediaStreamVideoRendererSinkTest.EncodeVideoFrames (7 ms)
[----------] 2 tests from MediaStreamVideoRendererSinkTest (16 ms total)
[----------] 1 test from MediaStreamVideoRendererSinkAsyncAddFrameReadyTest
[ RUN ] MediaStreamVideoRendererSinkAsyncAddFrameReadyTest.CreateHardwareFrames
[16569:775:0911/112343.543511:688549134928724:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[ OK ] MediaStreamVideoRendererSinkAsyncAddFrameReadyTest.CreateHardwareFrames (7 ms)
[----------] 1 test from MediaStreamVideoRendererSinkAsyncAddFrameReadyTest (7 ms total)
[----------] 1 test from MediaStreamVideoRendererSinkTransparencyTest
[ RUN ] MediaStreamVideoRendererSinkTransparencyTest.SendTransparentFrame
[16569:775:0911/112343.550691:688549142108785:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[ OK ] MediaStreamVideoRendererSinkTransparencyTest.SendTransparentFrame (7 ms)
[----------] 1 test from MediaStreamVideoRendererSinkTransparencyTest (7 ms total)
[----------] 5 tests from MediaStreamVideoSourceTest
[ RUN ] MediaStreamVideoSourceTest.AddTrackAndStartSource
[16569:775:0911/112343.558007:688549149424785:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7f829ce041f0
[16569:775:0911/112343.558058:688549149474781:FATAL:scoped_task_environment.cc(95)] Check failed: !TaskScheduler::GetInstance().
0 libbase.dylib 0x00000001177e454e base::debug::StackTrace::StackTrace(unsigned long) + 174
1 libbase.dylib 0x00000001177e460d base::debug::StackTrace::StackTrace(unsigned long) + 29
2 libbase.dylib 0x00000001177e28bc base::debug::StackTrace::StackTrace() + 28
3 libbase.dylib 0x0000000117881a8f logging::LogMessage::~LogMessage() + 479
4 libbase.dylib 0x000000011787f3f5 logging::LogMessage::~LogMessage() + 21
5 content_unittests 0x0000000109354f30 base::test::ScopedTaskEnvironment::ScopedTaskEnvironment(base::test::ScopedTaskEnvironment::MainThreadType, base::test::ScopedTaskEnvironment::ExecutionMode) + 368
6 content_unittests 0x0000000109355ab1 base::test::ScopedTaskEnvironment::ScopedTaskEnvironment(base::test::ScopedTaskEnvironment::MainThreadType, base::test::ScopedTaskEnvironment::ExecutionMode) + 33
7 content_unittests 0x000000010837437d content::MediaStreamVideoSourceTest::MediaStreamVideoSourceTest() + 93
8 content_unittests 0x00000001083742ff content::MediaStreamVideoSourceTest_AddTrackAndStartSource_Test::MediaStreamVideoSourceTest_AddTrackAndStartSource_Test() + 31
9 content_unittests 0x00000001083742d5 content::MediaStreamVideoSourceTest_AddTrackAndStartSource_Test::MediaStreamVideoSourceTest_AddTrackAndStartSource_Test() + 21
RUN ] MediaStreamVideoTrackTest.StopLastTrack
[16571:775:0911/112344.432208:688550023687703:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x0
[16571:775:0911/112344.432778:688550024250573:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[16571:775:0911/112344.433100:688550024573473:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[16571:775:0911/112344.440311:688550031785227:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[16571:775:0911/112344.440360:688550031832764:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[ OK ] MediaStreamVideoTrackTest.StopLastTrack (8 ms)
[ RUN ] MediaStreamVideoTrackTest.CheckTrackRequestsFrame
[16571:775:0911/112344.440892:688550032379811:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[ OK ] MediaStreamVideoTrackTest.CheckTrackRequestsFrame (20 ms)
[ RUN ] MediaStreamVideoTrackTest.GetSettings
[16571:775:0911/112344.460897:688550052370422:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[ OK ] MediaStreamVideoTrackTest.GetSettings (5 ms)
[ RUN ] MediaStreamVideoTrackTest.GetSettingsWithAdjustment
[16571:775:0911/112344.465776:688550057249946:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[ OK ] MediaStreamVideoTrackTest.GetSettingsWithAdjustment (5 ms)
[ RUN ] MediaStreamVideoTrackTest.GetSettingsStopped
[16571:775:0911/112344.470988:688550062461737:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[ OK ] MediaStreamVideoTrackTest.GetSettingsStopped (5 ms)
[----------] 5 tests from MediaStreamVideoTrackTest (44 ms total)
[----------] 2 tests from MediaStreamRemoteVideoSourceTest
[ RUN ] MediaStreamRemoteVideoSourceTest.StartTrack
[16571:775:0911/112344.476010:688550067484033:VERBOSE1:task_scheduler.cc(76)] GetInstance: 0x7fc59d81d080
[16571:775:0911/112344.476051:688550067523527:FATAL:scoped_task_environment.cc(95)] Check failed: !TaskScheduler::GetInstance().
0 libbase.dylib 0x000000011fe6254e base::debug::StackTrace::StackTrace(unsigned long) + 174
1 libbase.dylib 0x000000011fe6260d base::debug::StackTrace::StackTrace(unsigned long) + 29
2 libbase.dylib 0x000000011fe608bc base::debug::StackTrace::StackTrace() + 28
3 libbase.dylib 0x000000011feffa8f logging::LogMessage::~LogMessage() + 479
4 libbase.dylib 0x000000011fefd3f5 logging::LogMessage::~LogMessage() + 21
5 content_unittests 0x00000001119f6f30 base::test::ScopedTaskEnvironment::ScopedTaskEnvironment(base::test::ScopedTaskEnvironment::MainThreadType, base::test::ScopedTaskEnvironment::ExecutionMode) + 368
6 content_unittests 0x00000001119f7ab1 base::test::ScopedTaskEnvironment::ScopedTaskEnvironment(base::test::ScopedTaskEnvironment::MainThreadType, base::test::ScopedTaskEnvironment::ExecutionMode) + 33
7 content_unittests 0x0000000110b40e0d content::MediaStreamRemoteVideoSourceTest::MediaStreamRemoteVideoSourceTest() + 93
8 content_unittests 0x0000000110b40d8f content::MediaStreamRemoteVideoSourceTest_StartTrack_Test::MediaStreamRemoteVideoSourceTest_StartTrack_Test() + 31
9 content_unittests 0x0000000110b40d65 content::MediaStreamRemoteVideoSourceTest_StartTrack_Test::MediaStreamRemoteVideoSourceTest_StartTrack_Test() + 21
Comment 1 by yini...@chromium.org
, Sep 11 2017Owner: wolenetz@chromium.org
Status: Assigned (was: Untriaged)