Issue metadata
Sign in to add a comment
|
AudioInputController flaky race on Linux TSAN trybot |
||||||||||||||||||||||
Issue descriptionSee https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.linux%2Flinux_chromium_tsan_rel_ng%2F109325%2F%2B%2Frecipes%2Fsteps%2Fcontent_browsertests__with_patch_%2F0%2Flogs%2FWebRtcGetUserMediaBrowserTest.AudioInIFrameAndCloseInSuccessCb%2F0 Apparently there is a race with the timer in AudioInputController. Sample logs: WARNING: ThreadSanitizer: data race (pid=9991) Read of size 8 at 0x7b040000e840 by thread T19: #0 base::BaseTimerTaskInternal::Run() base/timer/timer.cc:40:10 (content_browsertests+0x350137a) #1 Invoke<base::BaseTimerTaskInternal *> base/bind_internal.h:209:12 (content_browsertests+0x3501705) #2 MakeItSo<void (base::BaseTimerTaskInternal::*)(), base::BaseTimerTaskInternal *> base/bind_internal.h:275 (content_browsertests+0x3501705) #3 RunImpl<void (base::BaseTimerTaskInternal::*)(), std::__1::tuple<base::internal::OwnedWrapper<base::BaseTimerTaskInternal> >, 0> base/bind_internal.h:351 (content_browsertests+0x3501705) #4 base::internal::Invoker<base::internal::BindState<void (base::BaseTimerTaskInternal::*)(), base::internal::OwnedWrapper<base::BaseTimerTaskInternal> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:316 (content_browsertests+0x3501705) #5 base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && base/callback.h:91:12 (content_browsertests+0x7c4f11) #6 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:33 (content_browsertests+0x3556e00) #7 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:422:19 (content_browsertests+0x3477270) #8 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:433:5 (content_browsertests+0x3477b4b) #9 base::MessageLoop::DoDelayedWork(base::TimeTicks*) base/message_loop/message_loop.cc:580:10 (content_browsertests+0x3478400) #10 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:37:27 (content_browsertests+0x347c524) #11 base::MessageLoop::Run() base/message_loop/message_loop.cc:369:10 (content_browsertests+0x3476be3) #12 non-virtual thunk to base::MessageLoop::Run() base/message_loop/message_loop.cc (content_browsertests+0x3476c2d) #13 base::RunLoop::Run() base/run_loop.cc:111:14 (content_browsertests+0x34b5054) #14 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:255:13 (content_browsertests+0x34fafab) #15 base::Thread::ThreadMain() base/threading/thread.cc:338:3 (content_browsertests+0x34fb741) #16 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 (content_browsertests+0x34eee18) Previous write of size 8 at 0x7b040000e840 by thread T17: #0 Abandon base/timer/timer.cc:54:27 (content_browsertests+0x350160c) #1 AbandonScheduledTask base/timer/timer.cc:224 (content_browsertests+0x350160c) #2 AbandonAndStop base/timer/timer.h:171 (content_browsertests+0x350160c) #3 base::Timer::~Timer() base/timer/timer.cc:103 (content_browsertests+0x350160c) #4 media::AudioInputController::~AudioInputController() media/audio/audio_input_controller.cc:204:1 (content_browsertests+0x1041074) #5 media::AudioInputController::~AudioInputController() media/audio/audio_input_controller.cc:200:47 (content_browsertests+0x1041129) #6 DeleteInternal base/memory/ref_counted.h:358:44 (content_browsertests+0x288d976) #7 Destruct base/memory/ref_counted.h:313 (content_browsertests+0x288d976) #8 Release base/memory/ref_counted.h:349 (content_browsertests+0x288d976) #9 Release base/memory/ref_counted.h:617 (content_browsertests+0x288d976) #10 ~scoped_refptr base/memory/ref_counted.h:512 (content_browsertests+0x288d976) #11 ~AudioEntry content/browser/renderer_host/media/audio_input_renderer_host.cc:88 (content_browsertests+0x288d976) #12 operator() buildtools/third_party/libc++/trunk/include/memory:2272 (content_browsertests+0x288d976) #13 reset buildtools/third_party/libc++/trunk/include/memory:2585 (content_browsertests+0x288d976) #14 ~unique_ptr buildtools/third_party/libc++/trunk/include/memory:2539 (content_browsertests+0x288d976) #15 content::AudioInputRendererHost::DeleteEntry(content::AudioInputRendererHost::AudioEntry*) content/browser/renderer_host/media/audio_input_renderer_host.cc:507 (content_browsertests+0x288d976) #16 Invoke<scoped_refptr<content::AudioInputRendererHost>, content::AudioInputRendererHost::AudioEntry *> base/bind_internal.h:209:12 (content_browsertests+0x288e776) #17 MakeItSo<void (content::AudioInputRendererHost::*)(content::AudioInputRendererHost::AudioEntry *), scoped_refptr<content::AudioInputRendererHost>, content::AudioInputRendererHost::AudioEntry *> base/bind_internal.h:275 (content_browsertests+0x288e776) #18 RunImpl<void (content::AudioInputRendererHost::*)(content::AudioInputRendererHost::AudioEntry *), std::__1::tuple<scoped_refptr<content::AudioInputRendererHost>, content::AudioInputRendererHost::AudioEntry *>, 0, 1> base/bind_internal.h:351 (content_browsertests+0x288e776) #19 base::internal::Invoker<base::internal::BindState<void (content::AudioInputRendererHost::*)(content::AudioInputRendererHost::AudioEntry*), scoped_refptr<content::AudioInputRendererHost>, content::AudioInputRendererHost::AudioEntry*>, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:316 (content_browsertests+0x288e776) #20 base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && base/callback.h:91:12 (content_browsertests+0x7c4f11) #21 base::(anonymous namespace)::PostTaskAndReplyRelay::RunReplyAndSelfDestruct() base/threading/post_task_and_reply_impl.cc:60:23 (content_browsertests+0x34ef45b) #22 Invoke<base::(anonymous namespace)::PostTaskAndReplyRelay *> base/bind_internal.h:209:12 (content_browsertests+0x34ef505) #23 MakeItSo<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)(), base::(anonymous namespace)::PostTaskAndReplyRelay *> base/bind_internal.h:275 (content_browsertests+0x34ef505) #24 RunImpl<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)(), std::__1::tuple<base::internal::UnretainedWrapper<base::(anonymous namespace)::PostTaskAndReplyRelay> >, 0> base/bind_internal.h:351 (content_browsertests+0x34ef505) #25 base::internal::Invoker<base::internal::BindState<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)(), base::internal::UnretainedWrapper<base::(anonymous namespace)::PostTaskAndReplyRelay> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:316 (content_browsertests+0x34ef505) #26 base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && base/callback.h:91:12 (content_browsertests+0x7c4f11) #27 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:33 (content_browsertests+0x3556e00) #28 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:422:19 (content_browsertests+0x3477270) #29 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:433:5 (content_browsertests+0x3477b4b) #30 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:540:13 (content_browsertests+0x34780af) #31 base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:219:31 (content_browsertests+0x347e6a0) #32 base::MessageLoop::Run() base/message_loop/message_loop.cc:369:10 (content_browsertests+0x3476be3) #33 non-virtual thunk to base::MessageLoop::Run() base/message_loop/message_loop.cc (content_browsertests+0x3476c2d) #34 base::RunLoop::Run() base/run_loop.cc:111:14 (content_browsertests+0x34b5054) #35 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:255:13 (content_browsertests+0x34fafab) #36 content::BrowserThreadImpl::IOThreadRun(base::RunLoop*) content/browser/browser_thread_impl.cc:278:11 (content_browsertests+0x23ff75f) #37 content::BrowserThreadImpl::Run(base::RunLoop*) content/browser/browser_thread_impl.cc:313:14 (content_browsertests+0x23ff9d4) #38 base::Thread::ThreadMain() base/threading/thread.cc:338:3 (content_browsertests+0x34fb741) #39 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:71:13 (content_browsertests+0x34eee18) Location is heap block of size 8 at 0x7b040000e840 allocated by thread T19: #0 operator new(unsigned long) <null> (content_browsertests+0x532422) #1 base::Timer::PostNewScheduledTask(base::TimeDelta) base/timer/timer.cc:197:21 (content_browsertests+0x3500fc4) #2 base::Timer::Reset() base/timer/timer.cc (content_browsertests+0x3500716) #3 base::Timer::Start(tracked_objects::Location const&, base::TimeDelta, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) base/timer/timer.cc:137:3 (content_browsertests+0x3500e8d) #4 void base::BaseTimerMethodPointer::Start<media::AudioInputController>(tracked_objects::Location const&, base::TimeDelta, media::AudioInputController*, void (media::AudioInputController::*)()) base/timer/timer.h:250:12 (content_browsertests+0x104380d) #5 media::AudioInputController::DoCreateForStream(media::AudioInputStream*, bool) media/audio/audio_input_controller.cc:367:28 (content_browsertests+0x1042077) #6 media::AudioInputController::DoCreate(media::AudioManager*, media::AudioParameters const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) media/audio/audio_input_controller.cc:325:3 (content_browsertests+0x10418ff) #7 Invoke<scoped_refptr<media::AudioInputController>, media::AudioManager *, media::AudioParameters, std::__1::basic_string<char>, bool> base/bind_internal.h:209:12 (content_browsertests+0x104562e) #8 MakeItSo<void (media::AudioInputController::*)(media::AudioManager *, const media::AudioParameters &, const std::__1::basic_string<char> &, bool), scoped_refptr<media::AudioInputController>, media::AudioManager *, media::AudioParameters, std::__1::basic_string<char>, bool> base/bind_internal.h:275 (content_browsertests+0x104562e) #9 RunImpl<void (media::AudioInputController::*)(media::AudioManager *, const media::AudioParameters &, const std::__1::basic_string<char> &, bool), std::__1::tuple<scoped_refptr<media::AudioInputController>, base::internal::UnretainedWrapper<media::AudioManager>, media::AudioParameters, std::__1::basic_string<char>, bool>, 0, 1, 2, 3, 4> base/bind_internal.h:351 (content_browsertests+0x104562e) #10 base::internal::Invoker<base::internal::BindState<void (media::AudioInputController::*)(media::AudioManager*, media::AudioParameters const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool), scoped_refptr<media::AudioInputController>, base::internal::UnretainedWrapper<media::AudioManager>, media::AudioParameters, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool>, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:316 (content_browsertests+0x104562e) #11 base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && base/callback.h:91:12 (content_browsertests+0x7c4f11) #12 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:59:33 (content_browsertests+0x3556e00) #13 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:422:19 (content_browsertests+0x3477270) #14 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:433:5 (content_browsertests+0x3477b4b) #15 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:540:13 (content_browsertests+0x34780af) #16 base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:33:31 (content_browsertests+0x347c5b9) #17 base::MessageLoop::Run() base/message_loop/message_loop.cc:369:10 (content_browsertests+0x3476be3) #18 non-virtual thunk to base::MessageLoop::Run() base/message_loop/message_loop.cc (content_browsertests+0x3476c2d) #19 base::RunLoop::Run() base/run_loop.cc:111:14 (content_browsertests+0x34b5054) #20 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:255:13 (content_browsertests+0x34fafab) #21 base::Thread::ThreadMain() base/threading/thread.cc:338:3 (content_browsertests+0x34fb741)
,
Jul 5 2017
Sample failed runs (not always the same test): https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_tsan_rel_ng/builds/109325 https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_tsan_rel_ng/builds/109342 https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_tsan_rel_ng/builds/109269
,
Jul 5 2017
,
Jul 5 2017
I think this is the same as bug 736268. I was waiting on some feedback on a fix over the long weekend and got some today. I'll try to get a CL up for it today.
,
Jul 5 2017
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by guidou@chromium.org
, Jul 5 2017Owner: ossu@chromium.org
Status: Assigned (was: Untriaged)