Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

thread sanitizer issue 09 #13870

Open
m0dB opened this issue Nov 10, 2024 · 0 comments
Open

thread sanitizer issue 09 #13870

m0dB opened this issue Nov 10, 2024 · 0 comments
Labels

Comments

@m0dB
Copy link
Contributor

m0dB commented Nov 10, 2024

Bug Description

SoundDevicePortAudio::close() vs SoundDevicePortAudio::writeProcess(long)

Details

==================
WARNING: ThreadSanitizer: data race (pid=48840)
  Write of size 8 at 0x00011265c088 by main thread (mutexes: write M0):
    #0 SoundDevicePortAudio::close() sounddeviceportaudio.cpp:405 (mixxx:arm64+0x101170164)
    #1 SoundManager::closeDevices(bool) soundmanager.cpp:156 (mixxx:arm64+0x101175cf4)
    #2 SoundManager::clearDeviceList(bool) soundmanager.cpp:208 (mixxx:arm64+0x10117557c)
    #3 SoundManager::~SoundManager() soundmanager.cpp:92 (mixxx:arm64+0x1011753b8)
    #4 SoundManager::~SoundManager() soundmanager.cpp:89 (mixxx:arm64+0x10117562c)
    #5 void std::__1::__destroy_at[abi:v160006]<SoundManager, 0>(SoundManager*) construct_at.h:66 (mixxx:arm64+0x100649058)
    #6 void std::__1::destroy_at[abi:v160006]<SoundManager, 0>(SoundManager*) construct_at.h:101 (mixxx:arm64+0x100649004)
    #7 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::destroy[abi:v160006]<SoundManager, void, void>(std::__1::allocator<SoundManager>&, SoundManager*) allocator_traits.h:323 (mixxx:arm64+0x100648fb0)
    #8 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__on_zero_shared() shared_ptr.h:305 (mixxx:arm64+0x100648c90)
    #9 std::__1::__shared_count::__release_shared[abi:v160006]() shared_ptr.h:157 (mixxx:arm64+0x100015dc0)
    #10 std::__1::__shared_weak_count::__release_shared[abi:v160006]() shared_ptr.h:198 (mixxx:arm64+0x100015d3c)
    #11 std::__1::shared_ptr<SoundManager>::~shared_ptr[abi:v160006]() shared_ptr.h:745 (mixxx:arm64+0x100640148)
    #12 std::__1::shared_ptr<SoundManager>::~shared_ptr[abi:v160006]() shared_ptr.h:743 (mixxx:arm64+0x100634b8c)
    #13 std::__1::shared_ptr<SoundManager>::reset[abi:v160006]() shared_ptr.h:812 (mixxx:arm64+0x10065a134)
    #14 void (anonymous namespace)::clearHelper<SoundManager>(std::__1::shared_ptr<SoundManager>&, char const*) coreservices.cpp:72 (mixxx:arm64+0x10063b610)
    #15 mixxx::CoreServices::finalize() coreservices.cpp:568 (mixxx:arm64+0x1006355d8)
    #16 mixxx::CoreServices::~CoreServices() coreservices.cpp:133 (mixxx:arm64+0x100634dbc)
    #17 mixxx::CoreServices::~CoreServices() coreservices.cpp:131 (mixxx:arm64+0x100636988)
    #18 void std::__1::__destroy_at[abi:v160006]<mixxx::CoreServices, 0>(mixxx::CoreServices*) construct_at.h:66 (mixxx:arm64+0x10001558c)
    #19 void std::__1::destroy_at[abi:v160006]<mixxx::CoreServices, 0>(mixxx::CoreServices*) construct_at.h:101 (mixxx:arm64+0x100015538)
    #20 void std::__1::allocator_traits<std::__1::allocator<mixxx::CoreServices>>::destroy[abi:v160006]<mixxx::CoreServices, void, void>(std::__1::allocator<mixxx::CoreServices>&, mixxx::CoreServices*) allocator_traits.h:323 (mixxx:arm64+0x1000154e4)
    #21 std::__1::__shared_ptr_emplace<mixxx::CoreServices, std::__1::allocator<mixxx::CoreServices>>::__on_zero_shared() shared_ptr.h:305 (mixxx:arm64+0x100015160)
    #22 std::__1::__shared_count::__release_shared[abi:v160006]() shared_ptr.h:157 (mixxx:arm64+0x100015dc0)
    #23 std::__1::__shared_weak_count::__release_shared[abi:v160006]() shared_ptr.h:198 (mixxx:arm64+0x100015d3c)
    #24 std::__1::shared_ptr<mixxx::CoreServices>::~shared_ptr[abi:v160006]() shared_ptr.h:745 (mixxx:arm64+0x100015ce8)
    #25 std::__1::shared_ptr<mixxx::CoreServices>::~shared_ptr[abi:v160006]() shared_ptr.h:743 (mixxx:arm64+0x100013f48)
    #26 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:112 (mixxx:arm64+0x100011198)
    #27 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Previous read of size 8 at 0x00011265c088 by thread T71 (mutexes: write M1, write M2):
    #0 SoundDevicePortAudio::writeProcess(long) sounddeviceportaudio.cpp:589 (mixxx:arm64+0x101170fe0)
    #1 SoundManager::writeProcess(long) const soundmanager.cpp:618 (mixxx:arm64+0x10117aed4)
    #2 SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) sounddeviceportaudio.cpp:1016 (mixxx:arm64+0x101172bf4)
    #3 (anonymous namespace)::paV19CallbackClkRef(void const*, void*, unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*) sounddeviceportaudio.cpp:69 (mixxx:arm64+0x10116fe5c)
    #4 AdaptingOutputOnlyProcess <null>:230508612 (mixxx:arm64+0x10210fed4)
    #5 PaUtil_EndBufferProcessing <null>:230508612 (mixxx:arm64+0x10210e09c)
    #6 AudioIOProc <null>:230508612 (mixxx:arm64+0x1021185a8)
    #7 <null> <null>:230508612 (CoreAudio:arm64e+0xa8d8)

  Location is heap block of size 400 at 0x00011265bfc0 allocated by main thread:
    #0 operator new(unsigned long) <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83de0)
    #1 SoundManager::queryDevicesPortaudio() soundmanager.cpp:307 (mixxx:arm64+0x10117709c)
    #2 SoundManager::queryDevices() soundmanager.cpp:239 (mixxx:arm64+0x1011750c4)
    #3 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:77 (mixxx:arm64+0x101174b18)
    #4 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:59 (mixxx:arm64+0x101175324)
    #5 SoundManager* std::__1::construct_at[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, SoundManager*>(SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) construct_at.h:38 (mixxx:arm64+0x100648e68)
    #6 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::construct[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void, void>(std::__1::allocator<SoundManager>&, SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) allocator_traits.h:304 (mixxx:arm64+0x100648b48)
    #7 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:284 (mixxx:arm64+0x1006489e4)
    #8 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:276 (mixxx:arm64+0x10064842c)
    #9 std::__1::shared_ptr<SoundManager> std::__1::allocate_shared[abi:v160006]<SoundManager, std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(std::__1::allocator<SoundManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:995 (mixxx:arm64+0x100648240)
    #10 std::__1::shared_ptr<SoundManager> std::__1::make_shared[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:1004 (mixxx:arm64+0x100639118)
    #11 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:274 (mixxx:arm64+0x1006373ec)
    #12 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc)
    #13 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Mutex M0 (0x000113b16468) created at:
    #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30)
    #1 <null> <null>:230508612 (CoreAudio:arm64e+0x7041c)
    #2 AudioUnitManager::AudioUnitManager(AVAudioUnitComponent*, AudioUnitInstantiationType) audiounitmanager.mm:22 (mixxx:arm64+0x1015d7a0c)
    #3 AudioUnitManager::AudioUnitManager(AVAudioUnitComponent*, AudioUnitInstantiationType) audiounitmanager.mm:11 (mixxx:arm64+0x1015d7f24)
    #4 AudioUnitManifest::AudioUnitManifest(QString const&, AVAudioUnitComponent*) audiounitmanifest.mm:23 (mixxx:arm64+0x1015deeec)
    #5 AudioUnitManifest::AudioUnitManifest(QString const&, AVAudioUnitComponent*) audiounitmanifest.mm:12 (mixxx:arm64+0x1015df7b4)
    #6 AudioUnitBackend::loadAudioUnits() audiounitbackend.mm:102 (mixxx:arm64+0x1015cd8ec)
    #7 AudioUnitBackend::AudioUnitBackend() audiounitbackend.mm:22 (mixxx:arm64+0x1015cd3b0)
    #8 AudioUnitBackend::AudioUnitBackend() audiounitbackend.mm:21 (mixxx:arm64+0x1015cd268)
    #9 createAudioUnitBackend() audiounitbackend.mm:111 (mixxx:arm64+0x1015cd1c0)
    #10 EffectsBackendManager::EffectsBackendManager() effectsbackendmanager.cpp:22 (mixxx:arm64+0x1007ce754)
    #11 EffectsBackendManager::EffectsBackendManager() effectsbackendmanager.cpp:15 (mixxx:arm64+0x1007cee80)
    #12 EffectsManager::EffectsManager(QSharedPointer<ConfigObject<ConfigValue>>, std::__1::shared_ptr<ChannelHandleFactory>) effectsmanager.cpp:34 (mixxx:arm64+0x10082a184)
    #13 EffectsManager::EffectsManager(QSharedPointer<ConfigObject<ConfigValue>>, std::__1::shared_ptr<ChannelHandleFactory>) effectsmanager.cpp:31 (mixxx:arm64+0x10082b660)
    #14 EffectsManager* std::__1::construct_at[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, EffectsManager*>(EffectsManager*, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) construct_at.h:38 (mixxx:arm64+0x100646500)
    #15 void std::__1::allocator_traits<std::__1::allocator<EffectsManager>>::construct[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void, void>(std::__1::allocator<EffectsManager>&, EffectsManager*, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) allocator_traits.h:304 (mixxx:arm64+0x1006461e0)
    #16 std::__1::__shared_ptr_emplace<EffectsManager, std::__1::allocator<EffectsManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&>(std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:284 (mixxx:arm64+0x10064607c)
    #17 std::__1::__shared_ptr_emplace<EffectsManager, std::__1::allocator<EffectsManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&>(std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:276 (mixxx:arm64+0x100645ac4)
    #18 std::__1::shared_ptr<EffectsManager> std::__1::allocate_shared[abi:v160006]<EffectsManager, std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void>(std::__1::allocator<EffectsManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:995 (mixxx:arm64+0x1006458d8)
    #19 std::__1::shared_ptr<EffectsManager> std::__1::make_shared[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void>(QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:1004 (mixxx:arm64+0x100638ea4)
    #20 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:262 (mixxx:arm64+0x1006372e0)
    #21 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc)
    #22 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Mutex M1 (0x000132118e18) created at:
    #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30)
    #1 HALB_Mutex::HALB_Mutex() <null>:230508612 (CoreAudio:arm64e+0x582f70)
    #2 Pa_Initialize <null>:230508612 (mixxx:arm64+0x10210b61c)
    #3 SoundManager::queryDevicesPortaudio() soundmanager.cpp:261 (mixxx:arm64+0x101176d00)
    #4 SoundManager::queryDevices() soundmanager.cpp:239 (mixxx:arm64+0x1011750c4)
    #5 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:77 (mixxx:arm64+0x101174b18)
    #6 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:59 (mixxx:arm64+0x101175324)
    #7 SoundManager* std::__1::construct_at[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, SoundManager*>(SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) construct_at.h:38 (mixxx:arm64+0x100648e68)
    #8 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::construct[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void, void>(std::__1::allocator<SoundManager>&, SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) allocator_traits.h:304 (mixxx:arm64+0x100648b48)
    #9 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:284 (mixxx:arm64+0x1006489e4)
    #10 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:276 (mixxx:arm64+0x10064842c)
    #11 std::__1::shared_ptr<SoundManager> std::__1::allocate_shared[abi:v160006]<SoundManager, std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(std::__1::allocator<SoundManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:995 (mixxx:arm64+0x100648240)
    #12 std::__1::shared_ptr<SoundManager> std::__1::make_shared[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:1004 (mixxx:arm64+0x100639118)
    #13 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:274 (mixxx:arm64+0x1006373ec)
    #14 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc)
    #15 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Mutex M2 (0x000113b29b60) created at:
    #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30)
    #1 CADeprecated::CAMutex::CAMutex(char const*) <null>:230508612 (libAudioToolboxUtility.dylib:arm64e+0x2920c)
    #2 OpenStream <null>:230508612 (mixxx:arm64+0x102115abc)
    #3 Pa_OpenStream <null>:230508612 (mixxx:arm64+0x10210c704)
    #4 SoundDevicePortAudio::open(bool, int) sounddeviceportaudio.cpp:338 (mixxx:arm64+0x10116f380)
    #5 SoundManager::setupDevices() soundmanager.cpp:475 (mixxx:arm64+0x101178660)
    #6 MixxxMainWindow::initialize() mixxxmainwindow.cpp:346 (mixxx:arm64+0x100f321e4)
    #7 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14)
    #8 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0)
    #9 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744)
    #10 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08)
    #11 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88)
    #12 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78)
    #13 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294)
    #14 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8)
    #15 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88)
    #16 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78)
    #17 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c)
    #18 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814)
    #19 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc)
    #20 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #21 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184)
    #22 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #23 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #24 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08)
    #25 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4)
    #26 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310)
    #27 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884)
    #28 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304)
    #29 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c)
    #30 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24)
    #31 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710)
    #32 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #33 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #34 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #35 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #36 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #37 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #38 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #39 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #40 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #41 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698)
    #42 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240)
    #43 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #44 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #45 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #46 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #47 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #48 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #49 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #50 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #51 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #52 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64)
    #53 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8)
    #54 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Thread T71 (tid=8891322, running) created by main thread at:
    #0 pthread_create <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2ffec)
    #1 HALB_IOThread::DispatchPThread(void* (*)(void*), void*) <null>:230508612 (CoreAudio:arm64e+0x332910)
    #2 Pa_StartStream <null>:230508612 (mixxx:arm64+0x10210c97c)
    #3 SoundDevicePortAudio::open(bool, int) sounddeviceportaudio.cpp:363 (mixxx:arm64+0x10116f51c)
    #4 SoundManager::setupDevices() soundmanager.cpp:475 (mixxx:arm64+0x101178660)
    #5 MixxxMainWindow::initialize() mixxxmainwindow.cpp:346 (mixxx:arm64+0x100f321e4)
    #6 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14)
    #7 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0)
    #8 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744)
    #9 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08)
    #10 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88)
    #11 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78)
    #12 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294)
    #13 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8)
    #14 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88)
    #15 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78)
    #16 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c)
    #17 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814)
    #18 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc)
    #19 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #20 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184)
    #21 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #22 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #23 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08)
    #24 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4)
    #25 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310)
    #26 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884)
    #27 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304)
    #28 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c)
    #29 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24)
    #30 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710)
    #31 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #32 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #33 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #34 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #35 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #36 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #37 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #38 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #39 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #40 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698)
    #41 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240)
    #42 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #43 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #44 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #45 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #46 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #47 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #48 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #49 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #50 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #51 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64)
    #52 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8)
    #53 main main.cpp:243 (mixxx:arm64+0x10000ff08)

SUMMARY: ThreadSanitizer: data race sounddeviceportaudio.cpp:405 in SoundDevicePortAudio::close()

Version

2.5

OS

No response

@m0dB m0dB added the bug label Nov 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant