New issue
Advanced search Search tips

Issue 740631 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jul 11
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Data race from ReverbAccumulationBuffer::Accumulate

Project Member Reported by rtoy@chromium.org, Jul 10 2017

Issue description

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)

 
Project Member

Comment 1 by sheriffbot@chromium.org, Jul 11

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: WontFix (was: Untriaged)
The tsan build is too slow to keep up with the processing in the test.

Closing (obsolete)

Sign in to add a comment