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 08 #13869

Closed
m0dB opened this issue Nov 10, 2024 · 1 comment
Closed

thread sanitizer issue 08 #13869

m0dB opened this issue Nov 10, 2024 · 1 comment
Labels

Comments

@m0dB
Copy link
Contributor

m0dB commented Nov 10, 2024

Bug Description

VisualPlayPosition::set vs VisualPlayPosition::getPlaySlipAtNextVSync

Details

==================
WARNING: ThreadSanitizer: data race (pid=48840)
  Read of size 1 at 0x00011b224bd8 by main thread (mutexes: write M0):
    #0 VisualPlayPosition::getPlaySlipAtNextVSync(VSyncThread*, double*, double*) visualplayposition.cpp:177 (mixxx:arm64+0x1013cea08)
    #1 WaveformWidgetRenderer::onPreRender(VSyncThread*) waveformwidgetrenderer.cpp:147 (mixxx:arm64+0x1013c83b8)
    #2 WaveformWidgetAbstract::preRender(VSyncThread*) waveformwidgetabstract.cpp:29 (mixxx:arm64+0x10140afb0)
    #3 WaveformWidgetFactory::renderSelf() waveformwidgetfactory.cpp:784 (mixxx:arm64+0x1013eb40c)
    #4 WaveformWidgetFactory::swapAndRender() waveformwidgetfactory.cpp:885 (mixxx:arm64+0x1013e2b28)
    #5 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (WaveformWidgetFactory::*)()>::call(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f48bfc)
    #6 void QtPrivate::FunctionPointer<void (WaveformWidgetFactory::*)()>::call<QtPrivate::List<>, void>(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f48ac8)
    #7 QtPrivate::QSlotObject<void (WaveformWidgetFactory::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f4892c)
    #8 QMetaCallEvent::placeMetaCall(QObject*) <null>:230508612 (mixxx:arm64+0x100113480)
    #9 QObject::event(QEvent*) <null>:230508612 (mixxx:arm64+0x10011659c)
    #10 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #11 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184)
    #12 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #13 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #14 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) <null>:230508612 (mixxx:arm64+0x1000b5ba8)
    #15 QCoreApplication::sendPostedEvents(QObject*, int) <null>:230508612 (mixxx:arm64+0x1000b4c48)
    #16 QCocoaEventDispatcherPrivate::processPostedEvents() <null>:230508612 (mixxx:arm64+0x101c5b46c)
    #17 QCoreApplication::exec() <null>:230508612 (mixxx:arm64+0x1000b4b78)
    #18 QGuiApplication::exec() <null>:230508612 (mixxx:arm64+0x104c85b28)
    #19 QApplication::exec() <null>:230508612 (mixxx:arm64+0x1021fbeb8)
    #20 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:108 (mixxx:arm64+0x10001112c)
    #21 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  Previous write of size 1 at 0x00011b224bd8 by thread T71 (mutexes: write M1, write M2):
    #0 VisualPlayPosition::set(double, double, double, double, double, SlipModeState, bool, bool, bool, double, double, double, double) visualplayposition.cpp:56 (mixxx:arm64+0x1013cdd34)
    #1 EngineBuffer::updateIndicators(double, int) enginebuffer.cpp:1475 (mixxx:arm64+0x1009953b8)
    #2 EngineBuffer::postProcess(int) enginebuffer.cpp:1409 (mixxx:arm64+0x100994dbc)
    #3 EngineDeck::postProcess(int) enginedeck.cpp:96 (mixxx:arm64+0x1008f5640)
    #4 EngineMixer::processChannels(int) enginemixer.cpp:398 (mixxx:arm64+0x1009a7fc8)
    #5 EngineMixer::process(int) enginemixer.cpp:426 (mixxx:arm64+0x1009a8560)
    #6 SoundManager::onDeviceOutputCallback(long) soundmanager.cpp:599 (mixxx:arm64+0x10117ac44)
    #7 SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) sounddeviceportaudio.cpp:998 (mixxx:arm64+0x101172984)
    #8 (anonymous namespace)::paV19CallbackClkRef(void const*, void*, unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*) sounddeviceportaudio.cpp:69 (mixxx:arm64+0x10116fe5c)
    #9 AdaptingOutputOnlyProcess <null>:230508612 (mixxx:arm64+0x10210fed4)
    #10 PaUtil_EndBufferProcessing <null>:230508612 (mixxx:arm64+0x10210e09c)
    #11 AudioIOProc <null>:230508612 (mixxx:arm64+0x1021185a8)
    #12 <null> <null>:230508612 (CoreAudio:arm64e+0xa8d8)

  Location is heap block of size 896 at 0x00011b224880 allocated by main thread:
    #0 operator new(unsigned long) <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83de0)
    #1 VisualPlayPosition::getVisualPlayPosition(QString const&) visualplayposition.cpp:216 (mixxx:arm64+0x1013ced88)
    #2 EngineBuffer::EngineBuffer(QString const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineChannel*, EngineMixer*) enginebuffer.cpp:165 (mixxx:arm64+0x10098b1c0)
    #3 EngineBuffer::EngineBuffer(QString const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineChannel*, EngineMixer*) enginebuffer.cpp:97 (mixxx:arm64+0x10098e88c)
    #4 EngineDeck::EngineDeck(ChannelHandleAndGroup const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, bool) enginedeck.cpp:38 (mixxx:arm64+0x1008f49fc)
    #5 EngineDeck::EngineDeck(ChannelHandleAndGroup const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, bool) enginedeck.cpp:24 (mixxx:arm64+0x1008f4df4)
    #6 BaseTrackPlayerImpl::BaseTrackPlayerImpl(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&, bool, bool, bool) basetrackplayer.cpp:55 (mixxx:arm64+0x100ea9a6c)
    #7 BaseTrackPlayerImpl::BaseTrackPlayerImpl(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&, bool, bool, bool) basetrackplayer.cpp:54 (mixxx:arm64+0x100ea94bc)
    #8 Deck::Deck(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&) deck.cpp:19 (mixxx:arm64+0x100eb8bf4)
    #9 PlayerManager::addDeckInner() playermanager.cpp:408 (mixxx:arm64+0x100ed0cd0)
    #10 PlayerManager::slotChangeNumDecks(double) playermanager.cpp:323 (mixxx:arm64+0x100ecad78)
    #11 PlayerManager::addConfiguredDecks() playermanager.cpp:395 (mixxx:arm64+0x100ed1e30)
    #12 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:309 (mixxx:arm64+0x100637774)
    #13 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc)
    #14 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 visualplayposition.cpp:177 in VisualPlayPosition::getPlaySlipAtNextVSync(VSyncThread*, double*, double*)

Version

2.5

OS

No response

@m0dB m0dB added the bug label Nov 10, 2024
@m0dB
Copy link
Contributor Author

m0dB commented Nov 11, 2024

fixed in #13876

@m0dB m0dB closed this as completed Nov 11, 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