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

Crash in QV4 markWeakValues() -> QV4::Value::as when launching SDDM

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P1: Critical
    • 6.8
    • 6.8.0
    • None
    • Operating System: Arch Linux
      KDE Plasma Version: 6.2.3
      KDE Frameworks Version: 6.8.0
      Qt Version: 6.8.0
    • Linux/X11

    Description

       

      When I launch SDDM on Arch Linux, it crashes when attempting to login, locking me out of the system until I enable a workaround (disabling Breeze theme).

      coredumpctl reveals a segfault with the following backtrace, pointing to QV4 GC internals (markWeakValues iterating GCIteratorStorage?):

      (gdb) bt
      #0  0x000071c9b54535a0 in QV4::Value::as<QV4::QObjectWrapper> (this=0x71c9b5782820) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4value_p.h:144
      #1  QV4::Value::as<QV4::QObjectWrapper> (this=0x71c9b5782820) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4value_p.h:151
      #2  QV4::(anonymous namespace)::markWeakValues (that=0x5884cfe05040, stateData=std::variant [index 1] = {...}) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:749
      #3  0x000071c9b545172d in QV4::GCStateMachine::transition (this=0x5884cfe05040) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:1495
      #4  QV4::GCStateMachine::transition (this=0x5884cfe05040) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:1477
      #5  0x000071c9b54611b7 in QV4::GCStateMachine::step (this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:79
      #6  QV4::MemoryManager::runGC (this=0x5884cfdfa980) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:1272
      #7  0x000071c9b536878a in QV4::MemoryManager::runGC (this=0x5884cfdfa980) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:1260
      #8  QV4::MemoryManager::allocate (this=0x5884cfdfa980, allocator=0x5884cfdfa990, size=64) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:386
      #9  QV4::MemoryManager::allocString (this=0x5884cfdfa980, unmanagedSize=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm.cpp:994
      #10 QV4::MemoryManager::allocWithStringData<QV4::String, QString const&> (this=0x5884cfdfa980, unmanagedSize=<optimized out>, arg1=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/memory/qv4mm_p.h:274
      #11 QV4::ExecutionEngine::newString (this=<optimized out>, s=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4engine.cpp:938
      ...

       

      This has been previously reported at https://github.com/sddm/sddm/issues/2001. Judging from QTBUG-129241 (and closed QTBUG-123426), this is an alteration of the QV4 GC added to Qt 6.8.0.

      The segfault does not occur if I launch sddm-greeter-qt6 in --test-mode, or if I edit `/etc/sddm.conf.d/kde_settings.conf` and comment out by editing `#Current=breeze`. I think this is a newly introduced Qt QML GC bug, but it could be a SDDM theme bug causing C++ lifetime errors, I don't know.

      Attachments

        Issue Links

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

          Activity

            People

              qtqmlteam Qt Qml Team User
              nyanpasu64 Nyan Pasu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes