Summary: | Plasma crashes when trying to go into the weather widget config dialog's Units tab for the second time | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | ngcreeper |
Component: | generic-crash | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alex765, anuprasnrl, dbruneau, km.abramov, nate, plasma-bugs |
Priority: | NOR | Keywords: | drkonqi, triaged |
Version: | 5.18.4 | ||
Target Milestone: | 1.0 | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kdeplasma-addons/commit/1dbb185725e365d3f375740eb3ddcc00afbf4cd1 | Version Fixed In: | 5.20.5 |
Attachments: | New crash information added by DrKonqi |
Description
ngcreeper
2020-04-06 07:56:36 UTC
Cannot reproduce. I couldn't reproduce this on Fedora 32 with Plasma 5.18.5 Thanks! *** Bug 422305 has been marked as a duplicate of this bug. *** *** Bug 422782 has been marked as a duplicate of this bug. *** Juts Just reproduced this with git master Plasma. I had to go to the units tab twice to reproduce this. The first time I visit it, everything is fine, but on the second visit after viewing another tab, it crashes 100% of the time. Here's a symbolicated backtrace: #0 0x00007ffff70d24b2 in QV4::QQmlTypeWrapper::virtualResolveLookupGetter(QV4::Object const*, QV4::ExecutionEngine*, QV4::Lookup*) (object=0x7fffd4bc9840, engine=0x3aeba10, lookup=0x3d58370) at /usr/include/bits/string_fortified.h:34 #1 0x00007ffff73040dd in operator() (__closure=0x7fffffff63d0) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/qml/qqmltypewrapper.cpp:523 #2 0x00007ffff73040dd in QV4::QObjectWrapper::lookupGetterImpl<QV4::QQmlTypeWrapper::lookupSingletonProperty(QV4::Lookup*, QV4::ExecutionEngine*, const QV4::Value&)::<lambda()> > (useOriginalProperty=true, revertLookup=..., object=..., engine=0x3aeba10, lookup=0x3d58370) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/jsruntime/qv4qobjectwrapper_p.h:232 #3 0x00007ffff73040dd in QV4::QQmlTypeWrapper::lookupSingletonProperty(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value const&) (l=0x3d58370, engine=0x3aeba10, object=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/qml/qqmltypewrapper.cpp:547 #4 0x00007ffff71dec51 in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7fffffff65d0, engine=0x3aeba10, code=0x7fffd4bc9840 "@\342\f\305\377\177") at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:744 #5 0x00007ffff71e20e7 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7fffffff65d0, engine=engine@entry=0x3aeba10) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:463 #6 0x00007ffff717d5ed in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) (this=this@entry=0x41e0ab0, thisObject=<optimized out>, argv=argv@entry=0x7fffd4bc97f8, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/jsruntime/qv4function.cpp:69 #7 0x00007ffff72f4995 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=this@entry=0x4626840, callData=callData@entry=0x7fffd4bc97c8, isUndefined=isUndefined@entry=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/jsruntime/qv4value_p.h:343 --Type <RET> for more, q to quit, c to continue without paging-- #8 0x00007ffff72a7fcb in QQmlBoundSignalExpression::evaluate(void**) (this=<optimized out>, a=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:95 #9 0x00007ffff72a84b0 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0x491eae0, a=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69 #10 0x00007ffff72d77bd in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/qml/qqmlnotifier.cpp:104 #11 0x00007ffff567fb75 in () at /usr/lib64/libQt5Core.so.5 #12 0x00007ffff73082f8 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) (this=0x617ea80, interrupt=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/qml/qqmlobjectcreator.cpp:1442 #13 0x00007ffff72a210c in QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) (this=0x60f68c0, i=...) at /usr/include/qt5/QtCore/qscopedpointer.h:116 #14 0x00007ffff72a2697 in QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*) (this=this@entry= 0x35ac880, i=..., forContext=forContext@entry=0x41d9010) at /usr/include/qt5/QtCore/qshareddata.h:160 #15 0x00007ffff729d6c2 in QQmlComponent::create(QQmlIncubator&, QQmlContext*, QQmlContext*) (this=<optimized out>, incubator=..., context=<optimized out>, forContext=forContext@entry=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/qml/qqmlcomponent.cpp:1178 #16 0x00007ffff0ba9f54 in QQuickStackElement::load(QQuickStackView*) (this=0x41d8bd0, parent=0x44c0cc0) at qquickstackelement.cpp:173 #17 0x00007ffff0baa1ca in QQuickStackViewPrivate::pushElements(QList<QQuickStackElement*> const&) (this=this@entry=0x44c0d80, elems=...) at /usr/include/qt5/QtCore/qvector.h:88 #18 0x00007ffff0bad876 in QQuickStackView::replace(QQmlV4Function*) (this=0x44c0cc0, args=<optimized out>) at qquickstackview_p.cpp:211 #19 0x00007ffff0bda503 in QQuickStackView::qt_metacall(QMetaObject::Call, int, void**) (this=0x44c0cc0, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fffffff8820) at .moc/moc_qquickstackview_p.cpp:455 --Type <RET> for more, q to quit, c to continue without paging-- #20 0x00007ffff72d7d0d in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=this@entry=0x7fffffff8780, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=argv@entry=0x7fffffff8820) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/qml/ftw/qflagpointer_p.h:351 #21 0x00007ffff71c3c56 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/include/QtQml/5.15.0/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:285 #22 0x00007ffff71f0fa2 in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=2, argv=0x7fffd4bc9700, thisObject=0x7fffd4bc9760, this=0x7fffffff88a8) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/jsruntime/qv4functionobject_p.h:172 #23 0x00007ffff71f0fa2 in QV4::Runtime::CallQmlContextPropertyLookup::call(QV4::ExecutionEngine*, unsigned int, QV4::Value*, int) (engine=0x3aeba10, index=<optimized out>, argv=0x7fffd4bc9700, argc=2) at /usr/src/debug/libqt5-qtdeclarative-5.15.0-1.1.x86_64/src/qml/jsruntime/qv4runtime.cpp:1366 #24 0x00007fffd4aa9533 in () #25 0x0000000000000000 in () Created attachment 132128 [details]
New crash information added by DrKonqi
plasmashell (5.18.5) using Qt 5.14.2
- What I was doing when the application crashed:
Configuring weather report by going into unit tab for the 2nd time. Can replicate this crash every time.
- Custom settings of the application:
-- Backtrace (Reduced):
#5 0x00007f8e1adc084d in QV4::QQmlTypeWrapper::lookupSingletonProperty(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value const&) () from /lib64/libQt5Qml.so.5
#6 0x00007f8e1acaa121 in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) () from /lib64/libQt5Qml.so.5
#7 0x00007f8e1acad5e7 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) () from /lib64/libQt5Qml.so.5
#8 0x00007f8e1ac4a5ad in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () from /lib64/libQt5Qml.so.5
#9 0x00007f8e1adb1465 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () from /lib64/libQt5Qml.so.5
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/43 Git commit d50d47ea4be689c46da41a0fa1a2d7955acbcaf7 by Willyanto Willyanto. Committed on 23/12/2020 at 14:43. Pushed by ngraham into branch 'master'. Fix weather widget crash when going to Units tab for the second time The AbstractUnitListModel is destroyed everytime we leave Units tab and when we are going to the Units tab for the second time, qml will try to access AbstractUnitListModel that is already destroyed. This causes segmentation fault. Set AbstractUnitListModel parent to qml engine so that the AbstractUnitListModel is destroyed when qml engine is destroyed. M +4 -8 applets/weather/plugin/plugin.cpp https://invent.kde.org/plasma/kdeplasma-addons/commit/d50d47ea4be689c46da41a0fa1a2d7955acbcaf7 Git commit 1dbb185725e365d3f375740eb3ddcc00afbf4cd1 by Nate Graham, on behalf of Willyanto Willyanto. Committed on 23/12/2020 at 15:18. Pushed by ngraham into branch 'Plasma/5.20'. Fix weather widget crash when going to Units tab for the second time The AbstractUnitListModel is destroyed everytime we leave Units tab and when we are going to the Units tab for the second time, qml will try to access AbstractUnitListModel that is already destroyed. This causes segmentation fault. Set AbstractUnitListModel parent to qml engine so that the AbstractUnitListModel is destroyed when qml engine is destroyed. (cherry picked from commit d50d47ea4be689c46da41a0fa1a2d7955acbcaf7) M +4 -8 applets/weather/plugin/plugin.cpp https://invent.kde.org/plasma/kdeplasma-addons/commit/1dbb185725e365d3f375740eb3ddcc00afbf4cd1 |