Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-108121

Crash when using QQuickDefaultClipNode::setRadius() with Material style Button

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P0: Blocker
    • 6.5.0 Beta1
    • 6.5
    • Quick: SceneGraph
    • None
    • 6fa2ee7f4a (qt/qtbase/dev) 6fa2ee7f4a (qt/tqtc-qtbase/dev)

    Description

      Steps to reproduce:

      1. Apply https://codereview.qt-project.org/c/qt/qtdeclarative/+/440893
      2. Run the testbench manual test
      3. Set the style to Material (either via e.g. env var or the settings in the app), restart
      4. Scroll down; it should crash
      18:24:02: Starting /home/mitch/dev/qt-dev-debug/qtdeclarative/tests/manual/quickcontrols2/testbench/testbench...
      QML debugging is enabled. Only use this in a safe environment.
      AddressSanitizer:DEADLYSIGNAL
      =================================================================
      ==83037==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f1fea4fad80 bp 0x7f1fc46b5a30 sp 0x7f1fc46b5a10 T7)
      ==83037==The signal is caused by a WRITE memory access.
      ==83037==Hint: address points to the zero page.
          #0 0x7f1fea4fad7f in std::__atomic_base<int>::fetch_add(int, std::memory_order) /usr/include/c++/9/bits/atomic_base.h:541
          #1 0x7f1fea4fad7f in bool QAtomicOps<int>::ref<int>(std::atomic<int>&) /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qatomic_cxx11.h:258
          #2 0x7f1fea4f7237 in QBasicAtomicInteger<int>::ref() /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qbasicatomic.h:51
          #3 0x7f1fead801b4 in void qAtomicAssign<QShaderPrivate>(QShaderPrivate*&, QShaderPrivate*) /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qatomic.h:186
          #4 0x7f1fead76019 in QShader::operator=(QShader const&) /home/mitch/dev/qt-dev/qtbase/src/gui/rhi/qshader.cpp:244
          #5 0x7f1fece1742a in QSGBatchRenderer::Renderer::StencilClipCommonData::reset() (/home/mitch/dev/qt-dev-debug/qtbase/lib/libQt6Quick.so.6+0xa3542a)
          #6 0x7f1fecde6fd3 in QSGBatchRenderer::Renderer::destroyGraphicsResources() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:938
          #7 0x7f1fecde6c9c in QSGBatchRenderer::Renderer::~Renderer() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:924
          #8 0x7f1fecde6f51 in QSGBatchRenderer::Renderer::~Renderer() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:927
          #9 0x7f1fecf97045 in QSGRhiLayer::invalidated() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgrhilayer.cpp:35
          #10 0x7f1fecf96f68 in QSGRhiLayer::~QSGRhiLayer() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgrhilayer.cpp:28
          #11 0x7f1fecf96f93 in QSGRhiLayer::~QSGRhiLayer() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgrhilayer.cpp:29
          #12 0x7f1fed8050d7 in QQuickShaderEffectSourceCleanup::run() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickshadereffectsource.cpp:55
          #13 0x7f1fecd276d6 in QQuickWindowPrivate::runAndClearJobs(QList<QRunnable*>*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:3755
          #14 0x7f1fecd15331 in QQuickWindowPrivate::syncSceneGraph() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:572
          #15 0x7f1fed5b13db in QSGRenderThread::sync(bool) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:555
          #16 0x7f1fed5b35de in QSGRenderThread::syncAndRender() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:692
          #17 0x7f1fed5b67d7 in QSGRenderThread::run() /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:941
          #18 0x7f1fe7349fb6 in operator() /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qthread_unix.cpp:321
          #19 0x7f1fe734cf75 in terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qthread_unix.cpp:257
          #20 0x7f1fe734a213 in QThreadPrivate::start(void*) /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qthread_unix.cpp:280
          #21 0x7f1fe661b608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477
          #22 0x7f1fe6540132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
      
      AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV /usr/include/c++/9/bits/atomic_base.h:541 in std::__atomic_base<int>::fetch_add(int, std::memory_order)
      Thread T7 (QSGRenderThread) created by T0 here:
          #0 0x7f1fee1ac815 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208
          #1 0x7f1fe734be16 in QThread::start(QThread::Priority) /home/mitch/dev/qt-dev/qtbase/src/corelib/thread/qthread_unix.cpp:707
          #2 0x7f1fed5bb994 in QSGThreadedRenderLoop::handleExposure(QQuickWindow*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1286
          #3 0x7f1fed5ba34f in QSGThreadedRenderLoop::exposureChanged(QQuickWindow*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1211
          #4 0x7f1fecd124f6 in QQuickWindow::exposeEvent(QExposeEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:176
          #5 0x7f1fea87057b in QWindow::event(QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qwindow.cpp:2485
          #6 0x7f1fecd1d5f6 in QQuickWindow::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:1561
          #7 0x7f1fe6d60e55 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1193
          #8 0x7f1fe6d605aa in doNotify /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1122
          #9 0x7f1fe6d60455 in QCoreApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1105
          #10 0x7f1fea6eafc0 in QGuiApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1928
          #11 0x7f1fe6d60241 in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1026
          #12 0x7f1fe6d61b3a in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1458
          #13 0x7f1fea6f8bb3 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:3194
          #14 0x7f1fea6ebe92 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:2067
          #15 0x7f1fea88cf90 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1089
          #16 0x7f1fdf42cd51 in xcbSourceDispatch /home/mitch/dev/qt-dev/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
          #17 0x7f1fe56cf17c in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5217c)
      
      ==83037==ABORTING
      18:24:13: /home/mitch/dev/qt-dev-debug/qtdeclarative/tests/manual/quickcontrols2/testbench/testbench exited with code 1
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              esabraha Eskil Abrahamsen Blomfeldt
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes