Do a tsan build and navigate to http://googlechrome.github.io/web-audio-samples/samples/audio/shiny-drum-machine.html
tsan reports
WARNING: ThreadSanitizer: data race (pid=147826)
Read of size 8 at 0x7fbb7c89be00 by thread T12 (mutexes: write M1076495757030258128):
#0 blink::VectorMath::Vadd(float const*, int, float const*, int, float*, int, unsigned long) third_party/WebKit/Source/platform/audio/VectorMath.cpp:409:42 (libblink_platform.so+0x1e3db7)
#1 blink::ReverbAccumulationBuffer::Accumulate(float*, unsigned long, int*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbAccumulationBuffer.cpp:98:3 (libblink_platform.so+0x1dda1f)
#2 blink::ReverbConvolverStage::Process(float const*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbConvolverStage.cpp:170:27 (libblink_platform.so+0x1df74a)
#3 blink::ReverbConvolver::Process(blink::AudioChannel const*, blink::AudioChannel*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbConvolver.cpp:195:17 (libblink_platform.so+0x1de69d)
#4 blink::Reverb::Process(blink::AudioBus const*, blink::AudioBus*, unsigned long) third_party/WebKit/Source/platform/audio/Reverb.cpp:227:23 (libblink_platform.so+0x1dc72c)
#5 blink::ConvolverHandler::Process(unsigned long) third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp:86:16 (libblink_modules.so+0xac1c98)
#6 blink::AudioHandler::ProcessIfNecessary(unsigned long) third_party/WebKit/Source/modules/webaudio/AudioNode.cpp:346:7 (libblink_modules.so+0xa8d295)
#7 blink::AudioNodeOutput::Pull(blink::AudioBus*, unsigned long) third_party/WebKit/Source/modules/webaudio/AudioNodeOutput.cpp:140:13 (libblink_modules.so+0xa982f3)
#8 blink::AudioNodeInput::Pull(blink::AudioBus*, unsigned long) third_party/WebKit/Source/modules/webaudio/AudioNodeInput.cpp:207:20 (libblink_modules.so+0xa96b72)
...
Previous write of size 8 at 0x7fbb7c89be00 by thread T20:
#0 blink::VectorMath::Vadd(float const*, int, float const*, int, float*, int, unsigned long) third_party/WebKit/Source/platform/audio/VectorMath.cpp:409:17 (libblink_platform.so+0x1e3dcc)
#1 blink::ReverbAccumulationBuffer::Accumulate(float*, unsigned long, int*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbAccumulationBuffer.cpp:98:3 (libblink_platform.so+0x1dda1f)
#2 blink::ReverbConvolverStage::Process(float const*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbConvolverStage.cpp:170:27 (libblink_platform.so+0x1df74a)
#3 blink::ReverbConvolverStage::ProcessInBackground(blink::ReverbConvolver*, unsigned long) third_party/WebKit/Source/platform/audio/ReverbConvolverStage.cpp:110:3 (libblink_platform.so+0x1df589)
#4 blink::ReverbConvolver::ProcessInBackground() third_party/WebKit/Source/platform/audio/ReverbConvolver.cpp:169:30 (libblink_platform.so+0x1de39b)
#5 Invoke<blink::ReverbConvolver *> base/bind_internal.h:209:12 (libblink_platform.so+0x1df065)
#6 MakeItSo<void (blink::ReverbConvolver::*const &)(), blink::ReverbConvolver *> base/bind_internal.h:275 (libblink_platform.so+0x1df065)
#7 RunImpl<void (blink::ReverbConvolver::*const &)(), const std::__1::tuple<WTF::UnretainedWrapper<blink::ReverbConvolver, WTF::FunctionThreadAffinity::kCrossThreadAffinity> > &, 0> base/bind_internal.h:351 (libblink_platform.so+0x1df065)
#8 base::internal::Invoker<base::internal::BindState<void (blink::ReverbConvolver::*)(), WTF::UnretainedWrapper<blink::ReverbConvolver, (WTF::FunctionThreadAffinity)0> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:329 (libblink_platform.so+0x1df065)
Comment 1 by sheriffbot@chromium.org
, Jul 11Status: Untriaged (was: Available)