Bug 389596 - Plasma Shell crashes upon close on wayland
Summary: Plasma Shell crashes upon close on wayland
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.11.1
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-29 13:25 UTC by Aleix Pol
Modified: 2019-12-22 11:35 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleix Pol 2018-01-29 13:25:58 UTC
Steps:
- gdb plasmashell and run on one terminal
- kquitapp5 plasmashell on another.

plasmashell has crashed:

#0  0x00007ffff07f0860 in raise () at /usr/lib/libc.so.6
#1  0x00007ffff07f1ec9 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff14f9047 in qt_message_fatal (context=..., message=<synthetic pointer>...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1716
#3  0x00007ffff14f9047 in QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7fffffffae20, msg=msg@entry=0x7ffff17b7ab0 "ASSERT: \"%s\" in file %s, line %d")
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:822
#4  0x00007ffff14f3dd6 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3126
#5  0x00007ffff6c32eae in KWayland::Client::BlurManager::createBlur(KWayland::Client::Surface*, QObject*) (this=0x55555602ab40, surface=0x555555f25a50, parent=0x555555f25a50) at /home/apol/devel/frameworks/kwayland/src/client/blur.cpp:89
#6  0x00007fffe1edef8e in WindowEffects::enableBlurBehind(unsigned long long, bool, QRegion const&) (this=0x555555963850, window=2, enable=true, region=...)
    at /home/apol/devel/frameworks/kwayland-integration/src/windowsystem/windoweffects.cpp:139
#7  0x00007ffff426c966 in KWindowEffects::enableBlurBehind(unsigned long long, bool, QRegion const&) (window=2, enable=true, region=...) at /home/apol/devel/frameworks/kwindowsystem/src/kwindoweffects.cpp:42
#8  0x00007ffff7973ab3 in PlasmaQuick::DialogPrivate::updateTheme() (this=0x555555e9d570) at /home/apol/devel/frameworks/plasma-framework/src/plasmaquick/dialog.cpp:245
#9  0x00007ffff7974a3e in PlasmaQuick::DialogPrivate::syncToMainItemSize() (this=0x555555e9d570) at /home/apol/devel/frameworks/plasma-framework/src/plasmaquick/dialog.cpp:612
#10 0x00007ffff7977b55 in PlasmaQuick::DialogPrivate::slotMainItemSizeChanged() (this=0x555555e9d570) at /home/apol/devel/frameworks/plasma-framework/src/plasmaquick/dialog.cpp:841
#11 0x00007ffff797aecf in PlasmaQuick::Dialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555555e99260, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fffffffb3b0)
    at src/plasmaquick/KF5PlasmaQuick_autogen/include/moc_dialog.cpp:232
#12 0x00007ffff17249f5 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x555555ea3800, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=22, argv=argv@entry=0x0)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3767
#13 0x00007ffff17250c7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x555555ea3800, m=m@entry=0x7ffff58e68a0 <QQuickItem::staticMetaObject>, local_signal_index=local_signal_index@entry=22, argv=argv@entry=0x0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3629
#14 0x00007ffff5667c73 in QQuickItem::heightChanged() (this=this@entry=0x555555ea3800) at .moc/moc_qquickitem.cpp:1157
#15 0x00007ffff56747ee in QQuickItem::geometryChanged(QRectF const&, QRectF const&) (this=0x555555ea3800, newGeometry=..., oldGeometry=...) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/quick/items/qquickitem.cpp:3779
#16 0x00007ffff566ef13 in QQuickItem::setHeight(double) (this=0x555555ea3800, h=<optimized out>) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/quick/items/qquickitem.cpp:6709
#17 0x00007ffff567e65c in QQuickItem::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qquickitem.cpp:922
#18 0x00007ffff4b89d7e in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7fffffffb6f8, target=<optimized out>, this=<optimized out>)
    at ../../include/QtQml/5.10.1/QtQml/private/../../../../../../../../devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlpropertycache_p.h:320
#19 0x00007ffff4b89d7e in GenericBinding<6>::doStore<double>(double, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=<optimized out>, value=<optimized out>, this=0x555555ea3a40)
    at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:296
#20 0x00007ffff4b89d7e in GenericBinding<6>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0x555555ea3a40, result=..., isUndefined=<optimized out>, flags=...)
    at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:269
#21 0x00007ffff4b8a56e in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x555555ea3a40, watcher=..., flags=..., scope=...)
    at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:211
#22 0x00007ffff4b87053 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x555555ea3a40, flags=...) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:168
#23 0x00007ffff4b5c583 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=a@entry=0x0) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:106
#24 0x00007ffff4af7669 in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (object=0x555555e980d0, index=<optimized out>, a=0x0) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlengine.cpp:856
#25 0x00007ffff172422f in QMetaObject::activate(QObject*, int, int, void**) (sender=0x555555e980d0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=0x0)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3644
#26 0x00007ffff4af8d88 in QQmlData::destroyed(QObject*) (this=0x55555605cca0, object=0x555555c5cf90) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/qml/qml/qqmlengine.cpp:1843
#27 0x00007ffff172b997 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:911
#28 0x00007ffff567b905 in QQuickItem::~QQuickItem() (this=0x555555c5cf90, __in_chrg=<optimized out>) at /home/apol/devel/frameworks/qt5/qtdeclarative/src/quick/items/qquickitem.cpp:2371
#29 0x00007ffff796ad1a in PlasmaQuick::AppletQuickItem::~AppletQuickItem() (this=0x555555c5cf90) at /home/apol/devel/frameworks/plasma-framework/src/plasmaquick/appletquickitem.cpp:446
#30 0x00007fffe042ca9b in AppletInterface::~AppletInterface() (this=0x555555c5cf90) at /home/apol/devel/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/appletinterface.cpp:148
#31 0x00007fffe0450889 in ContainmentInterface::~ContainmentInterface() (this=0x555555c5cf90)
    at src/scriptengines/qml/plasma_appletscript_declarative_autogen/include/../../../../../../../../devel/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/containmentinterface.h:51
#32 0x00007fffe04508a9 in ContainmentInterface::~ContainmentInterface() (this=0x555555c5cf90)
    at src/scriptengines/qml/plasma_appletscript_declarative_autogen/include/../../../../../../../../devel/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/containmentinterface.h:51
#33 0x00007ffff17225cb in QObjectPrivate::deleteChildren() (this=this@entry=0x555555c46810) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1993
#34 0x00007ffff172beeb in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1023
#35 0x00007ffff5be95b5 in Plasma::ScriptEngine::~ScriptEngine() (this=0x555555c56fd0) at /home/apol/devel/frameworks/plasma-framework/src/plasma/scripting/scriptengine.cpp:45
#36 0x00007ffff5be825c in Plasma::AppletScript::~AppletScript() (this=0x555555c56fd0) at /home/apol/devel/frameworks/plasma-framework/src/plasma/scripting/appletscript.cpp:47
#37 0x00007fffe042646d in DeclarativeAppletScript::~DeclarativeAppletScript() (this=0x555555c56fd0) at /home/apol/devel/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/declarativeappletscript.cpp:71
#38 0x00007fffe0426499 in DeclarativeAppletScript::~DeclarativeAppletScript() (this=0x555555c56fd0) at /home/apol/devel/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/declarativeappletscript.cpp:70
#39 0x00007ffff5b7ff7a in Plasma::AppletPrivate::~AppletPrivate() (this=0x555555c2a970) at /home/apol/devel/frameworks/plasma-framework/src/plasma/private/applet_p.cpp:107
#40 0x00007ffff5b800b9 in Plasma::AppletPrivate::~AppletPrivate() (this=0x555555c2a970) at /home/apol/devel/frameworks/plasma-framework/src/plasma/private/applet_p.cpp:97
#41 0x00007ffff5b656b8 in Plasma::Applet::~Applet() (this=0x555555c55640) at /home/apol/devel/frameworks/plasma-framework/src/plasma/applet.cpp:144
#42 0x00007ffff5b6c8f6 in Plasma::Containment::~Containment() (this=0x555555c55640) at /home/apol/devel/frameworks/plasma-framework/src/plasma/containment.cpp:95
#43 0x00007ffff5b6c919 in Plasma::Containment::~Containment() (this=0x555555c55640) at /home/apol/devel/frameworks/plasma-framework/src/plasma/containment.cpp:92
#44 0x00005555555a6dfd in ShellCorona::~ShellCorona() (this=0x5555558ad610) at /home/apol/devel/frameworks/plasma-workspace/shell/shellcorona.cpp:237
#45 0x00005555555a6f79 in ShellCorona::~ShellCorona() (this=0x5555558ad610) at /home/apol/devel/frameworks/plasma-workspace/shell/shellcorona.cpp:234
#46 0x00007ffff17225cb in QObjectPrivate::deleteChildren() (this=this@entry=0x5555558fe430) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1993
#47 0x00007ffff172beeb in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1023
Comment 1 David Edmundson 2018-01-29 14:31:35 UTC
You can fix this by replacing the clearly broken:

    QObject::connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, ShellManager::instance(), &QObject::deleteLater);

and reparenting ShellManager to app , but then that gives a crash on X :/
Comment 2 David Edmundson 2019-12-22 11:35:10 UTC
I believe I fixed this ages ago.

I assume you would have nagged me if this was still an issue. Please reopen if it still is an issue.