Bug 483884 - systemsettings asserts at "Q_ASSERT(m()->internalClass->vtable)" frequently when Qt is built in debug mode
Summary: systemsettings asserts at "Q_ASSERT(m()->internalClass->vtable)" frequently w...
Status: RESOLVED WORKSFORME
Alias: None
Product: systemsettings
Classification: Applications
Component: generic-crash (other bugs)
Version First Reported In: master
Platform: Compiled Sources Other
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: geezer-jobs, qt6
Depends on:
Blocks:
 
Reported: 2024-03-18 08:55 UTC by Fushan Wen
Modified: 2024-03-27 01:41 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fushan Wen 2024-03-18 08:55:47 UTC
SUMMARY
Qt 6.8, debug build, qtdeclarative at https://invent.kde.org/qt/qt/qtdeclarative/-/commit/2bc1c820902261a46d35d8f7c0eefa7adc2be909

https://bugreports.qt.io/browse/QTBUG-119274 might be related

`QML_DISABLE_DISK_CACHE=1` can work around it.


STEPS TO REPRODUCE
1. Open systemsettings
2. Click Search

OBSERVED RESULT
Assert

EXPECTED RESULT
No assert

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 
Qt Version: 6.8.0

ADDITIONAL INFORMATION
(gdb) bt
#0  QV4::Value::as<QV4::QObjectWrapper>() const (this=0x7ffff2609a80)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4value_p.h:136
#1  0x00007ffff6b7aee2 in QV4::Value::as<QV4::QObjectWrapper>()
    (this=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4value_p.h:151
#2  0x00007ffff6c760b8 in QV4::(anonymous namespace)::markWeakValues(QV4::GCStateMachine*, QV4::(anonymous namespace)::ExtraData&)
    (that=0x7178c0, stateData=std::variant [index 1] = {...})
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm.cpp:749
#3  0x00007ffff6c7678e in QV4::GCStateMachine::transition()
    (this=0x7178c0)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm.cpp:1473
#4  0x00007ffff6c77345 in QV4::GCStateMachine::step()
    (this=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm_p.h:79
#5  QV4::MemoryManager::runGC() (this=this@entry=0x657740)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm.cpp:1258
#6  0x00007ffff6babb3f in QV4::MemoryManager::allocate(QV4::BlockAllocator*, unsigned long) (this=0x657740, allocator=0x657750, size=size@entry=96)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm_p.h:396
#7  0x00007ffff6c786f2 in QV4::MemoryManager::allocData(unsigned long)
    (this=<optimized out>, size=size@entry=96)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm.cpp:1004
#8  0x00007ffff6c7881d in QV4::MemoryManager::allocObjectWithMemberData(QV4::VTable const*, unsigned int)
    (this=this@entry=0x657740, vtable=vtable@entry=0x7ffff6fd8560 <QV4::QQmlTypeWrapper::static_vtbl>, nMembers=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm.cpp:1016
#9  0x00007ffff6da4b7f in QV4::MemoryManager::allocateObject<QV4::QQmlTypeWrapper>(QV4::Heap::InternalClass*)
    (this=this@entry=0x657740, ic=0x7fffd8690600)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm_p.h:248
#10 0x00007ffff6da4bfb in QV4::MemoryManager::allocateObject<QV4::QQmlTypeWrapper>(QV4::InternalClass*)
    (this=this@entry=0x657740, ic=ic@entry=0x7fffd89bf5d8)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4managed_p.h:189
#11 0x00007ffff6da4ca0 in QV4::MemoryManager::allocateObject<QV4::QQmlTypeWrapper>() (this=0x657740)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm_p.h:268
#12 0x00007ffff6da4cde in QV4::MemoryManager::allocate<QV4::QQmlTypeWrapper, QV4::Heap::QQmlTypeWrapper::TypeNameMode&, QObject*&, QQmlTypePrivate const*>(QV4::Heap::QQmlTypeWrapper::TypeNameMode&, QObject*&, QQmlTypePrivate const*&&) (this=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/memory/qv4mm_p.h:301
#13 0x00007ffff6da3c60 in QV4::QQmlTypeWrapper::create(QV4::ExecutionEngine*, QObject*, QQmlType const&, QV4::Heap::QQmlTypeWrapper::TypeNameMode)
    (engine=<optimized out>, o=<optimized out>, 
    o@entry=0x28e0cb0, t=..., mode=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/qml/qqmltypewrapper.cpp:148
#14 0x00007ffff6da48ae in QV4::QQmlTypeWrapper::virtualGet(QV4::Managed const*, QV4::PropertyKey, QV4::Value const*, bool*)
    (m=m@entry=0x7fffd89bf5b8, id=..., receiver=receiver@entry=0x7fffd89bf5b8, hasProperty=hasProperty@entry=0x0)
    at /home/qydw/kde/src/qtdeclarative/src/qml/qml/qqmltypewrapper_p.h:67
#15 0x00007ffff6b7a779 in QV4::Object::get(QV4::StringOrSymbol*, bool*, QV4::Value const*) const
    (this=this@entry=0x7fffd89bf5b8, name=name@entry=0x7fffd89bf5c0, hasProperty=hasProperty@entry=0x0, receiver=0x7fffd89bf5b8, receiver@entry=0x0)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4object_p.h:271
#16 0x00007ffff6bec81d in QV4::Lookup::getterFallback(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value const&)
    (l=0x91d6b0, engine=<optimized out>, object=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4lookup.cpp:204
#17 0x00007ffff6c35737 in QV4::Runtime::GetLookup::call(QV4::ExecutionEngine*, QV4::Function*, QV4::Value const&, int)
    (engine=0x6772d0, f=<optimized out>, base=..., index=<optimized out>)
    at /home/qydw/kde/src/qtdeclarative/src/qml/jsruntime/qv4runtime.cpp:1150
#18 0x00007fffe3e26173 in  ()
#19 0x0000000000000000 in  ()
Comment 1 Fushan Wen 2024-03-27 01:41:16 UTC
The crash is gone but there is a new crash with the latest qtdev