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 02 #13862

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

thread sanitizer issue 02 #13862

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

Comments

@m0dB
Copy link
Contributor

m0dB commented Nov 10, 2024

Bug Description

Details

==================
WARNING: ThreadSanitizer: data race (pid=48840)
  Read of size 4 at 0x0001532a0340 by thread T54:
    #0 VSyncThread::pllInitializing() const vsyncthread.cpp:293 (mixxx:arm64+0x1013d938c)
    #1 VSyncThread::runPLL() vsyncthread.cpp:156 (mixxx:arm64+0x1013d8e5c)
    #2 VSyncThread::run() vsyncthread.cpp:61 (mixxx:arm64+0x1013d898c)
    #3 QThreadPrivate::start(void*) <null>:230508612 (mixxx:arm64+0x100248f60)

  Previous write of size 4 at 0x0001532a0340 by main thread (mutexes: write M0, write M1):
    #0 VSyncThread::updatePLL() vsyncthread.cpp:313 (mixxx:arm64+0x1013d9868)
    #1 WaveformWidgetFactory::slotFrameSwapped() waveformwidgetfactory.cpp:898 (mixxx:arm64+0x1013e2c0c)
    #2 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (WaveformWidgetFactory::*)()>::call(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f48bfc)
    #3 void QtPrivate::FunctionPointer<void (WaveformWidgetFactory::*)()>::call<QtPrivate::List<>, void>(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f48ac8)
    #4 QtPrivate::QSlotObject<void (WaveformWidgetFactory::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f4892c)
    #5 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08)
    #6 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88)
    #7 QOpenGLWindowPrivate::flush(QRegion const&) <null>:230508612 (mixxx:arm64+0x1044fd6c4)
    #8 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca47f4)
    #9 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc)
    #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 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08)
    #15 QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) <null>:230508612 (mixxx:arm64+0x104c8b470)
    #16 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c865c4)
    #17 bool QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<QWindowSystemInterfacePrivate::ExposeEvent, QWindow*, QRegion>(QWindow*, QRegion) <null>:230508612 (mixxx:arm64+0x104ce7ab8)
    #18 bool QWindowSystemInterface::handleExposeEvent<QWindowSystemInterface::SynchronousDelivery>(QWindow*, QRegion const&) <null>:230508612 (mixxx:arm64+0x104ce4cac)
    #19 QCocoaWindow::handleExposeEvent(QRegion const&) <null>:230508612 (mixxx:arm64+0x101c812dc)
    #20 MixxxMainWindow::initializationProgressUpdate(int, QString const&) mixxxmainwindow.cpp:1449 (mixxx:arm64+0x100f2f4d4)
    #21 MixxxMainWindow::loadConfiguredSkin() mixxxmainwindow.cpp:1241 (mixxx:arm64+0x100f35578)
    #22 MixxxMainWindow::initialize() mixxxmainwindow.cpp:326 (mixxx:arm64+0x100f31f44)
    #23 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14)
    #24 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0)
    #25 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744)
    #26 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08)
    #27 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88)
    #28 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78)
    #29 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294)
    #30 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8)
    #31 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88)
    #32 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78)
    #33 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c)
    #34 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814)
    #35 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc)
    #36 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #37 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184)
    #38 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #39 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #40 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08)
    #41 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4)
    #42 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310)
    #43 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884)
    #44 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304)
    #45 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c)
    #46 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24)
    #47 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710)
    #48 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #49 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #50 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #51 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #52 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #53 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #54 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #55 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #56 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #57 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698)
    #58 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240)
    #59 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #60 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #61 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #62 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #63 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #64 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #65 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #66 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #67 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #68 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64)
    #69 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8)
    #70 main main.cpp:243 (mixxx:arm64+0x10000ff08)

  As if synchronized via sleep:
    #0 nanosleep <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2efd8)
    #1 QThread::usleep(unsigned long) <null>:230508612 (mixxx:arm64+0x1002496f4)
    #2 VSyncThread::runPLL() vsyncthread.cpp:149 (mixxx:arm64+0x1013d8e04)
    #3 VSyncThread::run() vsyncthread.cpp:61 (mixxx:arm64+0x1013d898c)
    #4 QThreadPrivate::start(void*) <null>:230508612 (mixxx:arm64+0x100248f60)

  Location is heap block of size 208 at 0x0001532a02a0 allocated by main thread:
    #0 operator new(unsigned long) <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83de0)
    #1 WaveformWidgetFactory::startVSync(GuiTick*, VisualsManager*) waveformwidgetfactory.cpp:1247 (mixxx:arm64+0x1013edf84)
    #2 MixxxMainWindow::initialize() mixxxmainwindow.cpp:278 (mixxx:arm64+0x100f31bac)
    #3 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14)
    #4 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0)
    #5 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744)
    #6 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08)
    #7 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88)
    #8 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78)
    #9 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294)
    #10 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8)
    #11 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88)
    #12 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78)
    #13 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c)
    #14 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814)
    #15 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc)
    #16 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #17 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184)
    #18 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #19 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #20 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08)
    #21 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4)
    #22 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310)
    #23 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884)
    #24 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304)
    #25 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c)
    #26 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24)
    #27 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710)
    #28 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #29 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #30 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #31 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #32 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #33 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #34 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #35 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #36 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #37 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698)
    #38 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240)
    #39 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc)
    #40 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364)
    #41 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc)
    #42 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec)
    #43 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8)
    #44 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0)
    #45 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10)
    #46 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0)
    #47 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8)
    #48 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64)
    #49 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8)
    #50 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 (0x0001532a02f8) created at:
    #0 pthread_mutex_lock <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x3c94c)
    #1 std::__1::mutex::lock() <null>:230508612 (libc++.1.dylib:arm64e+0x162fc)
    #2 std::__1::scoped_lock<std::__1::mutex>::scoped_lock(std::__1::mutex&) mutex:495 (mixxx:arm64+0x1013d92e4)
    #3 VSyncThread::runPLL() vsyncthread.cpp:105 (mixxx:arm64+0x1013d8bf8)
    #4 VSyncThread::run() vsyncthread.cpp:61 (mixxx:arm64+0x1013d898c)
    #5 QThreadPrivate::start(void*) <null>:230508612 (mixxx:arm64+0x100248f60)

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

SUMMARY: ThreadSanitizer: data race vsyncthread.cpp:293 in VSyncThread::pllInitializing() const

VSyncThread / PLL. Fixed in #13873.

Version

2.5

OS

No response

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