[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#853171: segmentation fault when disabling a screen with kscreen without upower installed on the system



Hello,
I tried to debug this issue and spent "some" time to it.

-------
The class ShellCorona contains a QMap m_desktopViewforId storing
pairs of idx and desktopViews pointers.

When a display gets deactivated the method ShellCorona::removeDesktop [1]
is called with parameter desktopView.

    void ShellCorona::removeDesktop(DesktopView *desktopView)
    {
        const int idx = m_screenPool->id(desktopView->screenToFollow()->name());

"desktopView->screenToFollow()->name()" returns in my case always "DVI-I-1" even
as I disabled in the dialog the "VGA-1" display.

Therefore idx is set to 0.

Some lines later the desktopView gets deleted and removed from the map.
But unfortunately in this map the desktopView pointer, that gets deleted,
is stored with idx=1.

    delete desktopView;
    m_desktopViewforId.remove(idx);

That way desktopView contains now a pointer to already deleted memory.

-------
Second: When we start without an already existing directory ~/.local/share/kscreen/
then the crash happens also when upower _is_ installed.

But there is gets less visible because kscreen saves this configuration and
uses it next time at login, make the configuration at least activated there.
Without upower both displays are activated by default at login.

-------
Attached is a valgrind run and some gdb sessions trying to debug to the issue.

-------
Setting idx to the key that matches the element in the map for the to be
deleted desktopView leads to no crash.


Kind regards,
Bernhard

[1] plasma-workspace-5.8.4/shell/shellcorona.cpp
Environment:
 - Minimal Stretch i386 install
 - apt-get --no-install-recommends --no-install-suggests install sddm plasma-desktop kwin-x11 strace mesa-utils htop systemsettings kde-config-sddm kscreen systemd-coredump gdb libc-dbg plasma-workspace-dbgsym libkf5plasma5-dbgsym libqt5core5a-dbgsym libqt5gui5-dbgsym libqt5widgets5-dbgsym libglib2.0-0-dbg libkf5windowsystem5-dbgsym libkf5plasmaquick5-dbgsym plasma-framework-dbgsym libqt5qml5-dbgsym libqt5quick5-dbgsym libtaskmanager6-dbgsym libkf5itemmodels5-dbgsym libkf5activities5-dbgsym devscripts qtbase5-dev gdbserver git git-gui valgrind kdesdk-scripts
 - NVIDIA Corporation NV40 [GeForce 6800] (with Nouveau driver)
   15.03.2017 22:04:13.175 ; kded ;  : KScreen::Output( 145   "VGA-1" connected enabled QPoint(0,0) QSize(1024, 768) "149" )
   15.03.2017 22:04:13.185 ; kded ;  : KScreen::Output( 146   "DVI-I-1" connected enabled QPoint(1024,0) QSize(1024, 768) "149" )












------------
mv /usr/bin/plasmashell /usr/bin/plasmashell.orig
cat /usr/bin/plasmashell
    #!/bin/sh
    #/usr/bin/gdbserver localhost:4567 /usr/bin/plasmashell.orig $@
    #/usr/bin/plasmashell.orig $@ > $(tempfile --prefix=plasmashell) 2>&1
    /usr/bin/valgrind --log-file=/tmp/valgrind.log /usr/bin/plasmashell.orig $@


==1042== Invalid read of size 4
==1042==    at 0x487B034: PlasmaQuick::ContainmentView::containment() const (containmentview.cpp:263)
==1042==    by 0x13E219: ShellCorona::screenForContainment(Plasma::Containment const*) const (shellcorona.cpp:1826)
==1042==    by 0x13E165: ShellCorona::screenForContainment(Plasma::Containment const*) const (shellcorona.cpp:1818)
==1042==    by 0x4EF3FAA: Plasma::Containment::screen() const (containment.cpp:489)
==1042==    by 0x19677BC6: NotificationsApplet::onScreenChanges() (notificationsapplet.cpp:65)
==1042==    by 0x6DBFAAD: call (qobject_impl.h:101)
==1042==    by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723)
==1042==    by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602)
==1042==    by 0x59F3EE1: KWindowSystem::workAreaChanged() (moc_kwindowsystem_WAINN7OXDV4STE.cpp:337)
==1042==    by 0xD6B0E8B: NETEventFilter::nativeEventFilter(xcb_generic_event_t*) (kwindowsystem.cpp:258)
==1042==    by 0x6D8E66F: QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (qabstracteventdispatcher.cpp:466)
==1042==    by 0xAC35121: QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (qxcbconnection.cpp:1106)
==1042==    by 0xAC35EF6: QXcbConnection::processXcbEvents() (qxcbconnection.cpp:1741)
==1042==  Address 0xd3d6d08 is 24 bytes inside a block of size 60 free'd
==1042==    at 0x482E938: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==1042==    by 0x12B6C1: DesktopView::~DesktopView() (desktopview.cpp:74)
==1042==    by 0x13F9D0: ShellCorona::removeDesktop(DesktopView*) (shellcorona.cpp:1047)
==1042==    by 0x14044E: ShellCorona::screenRemoved(QScreen*) (shellcorona.cpp:1077)
==1042==    by 0x6DBFAAD: call (qobject_impl.h:101)
==1042==    by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723)
==1042==    by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602)
==1042==    by 0x6685EC8: QGuiApplication::screenRemoved(QScreen*) (moc_qguiapplication.cpp:366)
==1042==    by 0x66BE982: QScreen::~QScreen() (qscreen.cpp:114)
==1042==    by 0x66BECF9: QScreen::~QScreen() (qscreen.cpp:139)
==1042==    by 0x667759A: QPlatformIntegration::destroyScreen(QPlatformScreen*) (qplatformintegration.cpp:496)
==1042==    by 0xAC33D51: QXcbConnection::destroyScreen(QXcbScreen*) (qxcbconnection.cpp:386)
==1042==    by 0xAC346D8: QXcbConnection::updateScreens(xcb_randr_notify_event_t const*) (qxcbconnection.cpp:281)
==1042==  Block was alloc'd at
==1042==    at 0x482D8DC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==1042==    by 0x1420B2: ShellCorona::addOutput(QScreen*) (shellcorona.cpp:1151)
==1042==    by 0x14AFC4: ShellCorona::load() (shellcorona.cpp:677)
==1042==    by 0x6DBFAAD: call (qobject_impl.h:101)
==1042==    by 0x6DBFAAD: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3723)
==1042==    by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602)
==1042==    by 0x4C7D9B0: KActivities::Consumer::serviceStatusChanged(KActivities::Consumer::ServiceStatus) (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0)
==1042==    by 0x4C7EFED: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0)
==1042==    by 0x6DBF72B: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3740)
==1042==    by 0x6DBFF8C: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3602)
==1042==    by 0x4C7D831: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0)
==1042==    by 0x4C765D3: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0)
==1042==    by 0x4C76852: ??? (in /usr/lib/i386-linux-gnu/libKF5Activities.so.5.28.0)




















-------------
Please watch the pointer 0x80f05c88


benutzer@debian:~$ gdb -q --pid 1769
Attaching to process 1769
[New LWP 1777]
[New LWP 1792]
[New LWP 1799]
[New LWP 1818]
[New LWP 1819]
[New LWP 1820]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
0xb7748cf9 in __kernel_vsyscall ()
(gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0
Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4
Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) set height 0
(gdb) set width 0
(gdb) b DesktopView::~DesktopView
Breakpoint 1 at 0x800845e0: DesktopView::~DesktopView. (2 locations)
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>print this
>cont
>end
(gdb) b NotificationsApplet::onScreenChanges
Breakpoint 2 at 0xa4fa4b80: file ./applets/notifications/lib/notificationsapplet.cpp, line 64.
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64
64      {
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80f05c88, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72
72      DesktopView::~DesktopView()
$1 = (DesktopView * const) 0x80f05c88

Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80f05c88, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72
72      DesktopView::~DesktopView()
$2 = (DesktopView * const) 0x80f05c88

Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64
64      {
(gdb) next
65          m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen());
(gdb) step
Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640
640     {
(gdb) next
641         Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this));
(gdb) 
642         if (c && c->isContainment()) {
(gdb) 
648         QObject *parent = this->parent();
(gdb) 
650         while (parent) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
661     }
(gdb) step
Plasma::Containment::corona (this=0x80cd91f8) at ./src/plasma/containment.cpp:323
323     {
(gdb) next
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
323     {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
324         if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
329             if (parentApplet && parentApplet->containment()) {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
329             if (parentApplet && parentApplet->containment()) {
(gdb) 
330                 return parentApplet->containment()->corona();
(gdb) 
324         if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) {
(gdb) 
335     }
(gdb) step
Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640
640     {
(gdb) next
641         Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this));
(gdb) 
642         if (c && c->isContainment()) {
(gdb) 
648         QObject *parent = this->parent();
(gdb) 
650         while (parent) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
661     }
(gdb) step
Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:486
486     {
(gdb) next
488         if (Corona* c = corona()) {
(gdb) 
489             return c->screenForContainment(this);
(gdb) 
493     }
(gdb) step
ShellCorona::availableScreenRect (this=0x80be4bc0, id=0) at ./shell/shellcorona.cpp:988
988     {
(gdb) next
989         if (!m_desktopViewforId.contains(id)) {
(gdb) 
988     {
(gdb) 
989         if (!m_desktopViewforId.contains(id)) {
(gdb) 
991             qWarning() << "requesting unexisting screen" << id;
(gdb) 
992             QScreen *s = qGuiApp->primaryScreen();
(gdb) print id
$3 = <optimized out>
(gdb) next
993             return s ? s->availableGeometry() : QRect();
(gdb) print s
$4 = (QScreen *) 0x80bbd148
(gdb) next
1019    }
(gdb) step
NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:66
66          Q_EMIT availableScreenRectChanged(m_availableScreenRect);
(gdb) step
65          m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen());
(gdb) 
66          Q_EMIT availableScreenRectChanged(m_availableScreenRect);
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 2, NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:64
64      {
(gdb) next
65          m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen());
(gdb) step
Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640
640     {
(gdb) next
641         Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this));
(gdb) 
642         if (c && c->isContainment()) {
(gdb) 
648         QObject *parent = this->parent();
(gdb) 
650         while (parent) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
661     }
(gdb) step
Plasma::Containment::corona (this=0x80cd91f8) at ./src/plasma/containment.cpp:323
323     {
(gdb) next
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
323     {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
324         if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
329             if (parentApplet && parentApplet->containment()) {
(gdb) 
328             Plasma::Applet *parentApplet = qobject_cast<Plasma::Applet *>(parent());
(gdb) 
329             if (parentApplet && parentApplet->containment()) {
(gdb) 
330                 return parentApplet->containment()->corona();
(gdb) 
324         if(Plasma::Corona* corona = qobject_cast<Corona *>(parent())) {
(gdb) 
335     }
(gdb) step
Plasma::Applet::containment (this=0x814f48d0) at ./src/plasma/applet.cpp:640
640     {
(gdb) next
641         Containment *c = qobject_cast<Containment *>(const_cast<Applet *>(this));
(gdb) 
642         if (c && c->isContainment()) {
(gdb) 
648         QObject *parent = this->parent();
(gdb) 
650         while (parent) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
651             Containment *possibleC = qobject_cast<Containment *>(parent);
(gdb) 
653             if (possibleC && possibleC->isContainment()) {
(gdb) 
661     }
(gdb) step
Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:486
486     {
(gdb) next
488         if (Corona* c = corona()) {
(gdb) 
489             return c->screenForContainment(this);
(gdb) 

Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault.
PlasmaQuick::ContainmentView::containment (this=0x80f05c88) at ./src/plasmaquick/containmentview.cpp:263
263         return d->containment;
(gdb) bt
#0  PlasmaQuick::ContainmentView::containment (this=0x80f05c88) at ./src/plasmaquick/containmentview.cpp:263
#1  0x8009721a in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1826
#2  0x80097166 in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1818
#3  0xb7014fab in Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:489
#4  0xa4fa4bc7 in NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:65
#5  0xb51f7aae in QtPrivate::QSlotObjectBase::call (a=0xbfa1fb98, r=0x814f48d0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#6  QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723
#7  0xb51f7f8d in QMetaObject::activate (sender=0xb65c6900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb65c5dc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602
#8  0xb65acee2 in KWindowSystem::workAreaChanged (this=0xb65c6900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337
#9  0xb01d7e8c in NETEventFilter::nativeEventFilter (this=0x80e29dc0, ev=0xb0c22fe0) at ./src/platforms/xcb/kwindowsystem.cpp:258
#10 0xb51c6670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466
#11 0xb1682122 in QXcbConnection::handleXcbEvent (this=0x80bae3f0, event=0xb0c22fe0) at qxcbconnection.cpp:1106
#12 0xb1682ef7 in QXcbConnection::processXcbEvents (this=0x80bae3f0) at qxcbconnection.cpp:1741
#13 0xb16b9de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188
#14 0xb51f48e0 in QMetaCallEvent::placeMetaCall (this=0xb0c067d0, object=0x80bae3f0) at kernel/qobject.cpp:502
#15 0xb51f8563 in QObject::event (this=0x80bae3f0, e=0xb0c067d0) at kernel/qobject.cpp:1263
#16 0xb1685a49 in QXcbConnection::event (this=0x80bae3f0, e=0xb0c067d0) at qxcbconnection.cpp:2357
#17 0xb5b4117a in QApplicationPrivate::notify_helper (this=0x80ba7f50, receiver=0x80bae3f0, e=0xb0c067d0) at kernel/qapplication.cpp:3799
#18 0xb5b4903c in QApplication::notify (this=0xbfa203b8, receiver=0x80bae3f0, e=0xb0c067d0) at kernel/qapplication.cpp:3556
#19 0xb51c9a7d in QCoreApplication::notifyInternal2 (receiver=0x80bae3f0, event=0xb0c067d0) at kernel/qcoreapplication.cpp:988
#20 0xb51cc477 in QCoreApplication::sendEvent (event=0xb0c067d0, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80ba2e90) at kernel/qcoreapplication.cpp:1649
#22 0xb51cc8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503
#23 0xb5222733 in postEventSourceDispatch (s=0x80bd2a88) at kernel/qeventdispatcher_glib.cpp:276
#24 0xb3d354e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203
#25 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856
#26 0xb3d35789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#27 0xb3d35854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990
#28 0xb5222b23 in QEventDispatcherGlib::processEvents (this=0x80bd5470, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#29 0xb16bad81 in QPAEventDispatcherGlib::processEvents (this=0x80bd5470, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121
#30 0xb51c765d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212
#31 0xb51d07cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#32 0xb5501aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#33 0xb5b410d4 in QApplication::exec () at kernel/qapplication.cpp:2975
#34 0x8007768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166
(gdb) up
#1  0x8009721a in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1826
1826            if (m_desktopViewforId.value(id)->containment() == containment && containment->activity() == m_activityController->currentActivity()) {
(gdb) 
#2  0x80097166 in ShellCorona::screenForContainment (this=0x80be4bc0, containment=<optimized out>) at ./shell/shellcorona.cpp:1818
1818                return screenForContainment(cont);
(gdb) 
#3  0xb7014fab in Plasma::Containment::screen (this=0x80cd91f8) at ./src/plasma/containment.cpp:489
489             return c->screenForContainment(this);
(gdb) 
#4  0xa4fa4bc7 in NotificationsApplet::onScreenChanges (this=0x814f48d0) at ./applets/notifications/lib/notificationsapplet.cpp:65
65          m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen());























----------
Please watch the pointer 0x80674c30

benutzer@debian:~$ gdb -q --pid 6474
Attaching to process 6474
[New LWP 6485]
[New LWP 6495]
[New LWP 6505]
[New LWP 6523]
[New LWP 6524]
[New LWP 6525]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
0xb776bcf9 in __kernel_vsyscall ()
(gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0
Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4
Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) set height 0
(gdb) set width 0
(gdb) source /usr/share/doc/kdesdk-scripts/examples/kde-devel-gdb
(gdb) b DesktopView::~DesktopView
Breakpoint 1 at 0x801145e0: DesktopView::~DesktopView. (2 locations)
(gdb) b ShellCorona::removeDesktop
Breakpoint 2 at 0x80128870: file ./shell/shellcorona.cpp, line 1027.
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 2, ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1027
1027    {
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72
72      DesktopView::~DesktopView()
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 1, DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72
72      DesktopView::~DesktopView()
(gdb) bt
#0  DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:72
#1  0x801146ba in DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:74
#2  0x801289d1 in ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1047
#3  0x8012944f in ShellCorona::screenRemoved (this=0x80378d28, screen=<optimized out>) at ./shell/shellcorona.cpp:1077
#4  0xb5216aae in QtPrivate::QSlotObjectBase::call (a=0xbfa0d2e4, r=0x80378d28, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#5  QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723
#6  0xb5216f8d in QMetaObject::activate (sender=0xbfa0dbb8, m=0xb59c7390 <QGuiApplication::staticMetaObject>, local_signal_index=2, argv=0xbfa0d2e4) at kernel/qobject.cpp:3602
#7  0xb551eec9 in QGuiApplication::screenRemoved (this=0xbfa0dbb8, _t1=<optimized out>) at .moc/moc_qguiapplication.cpp:366
#8  0xb5557983 in QScreen::~QScreen (this=0x8031e808, __in_chrg=<optimized out>) at kernel/qscreen.cpp:114
#9  0xb5557cfa in QScreen::~QScreen (this=0x8031e808, __in_chrg=<optimized out>) at kernel/qscreen.cpp:139
#10 0xb551059b in QPlatformIntegration::destroyScreen (this=0x8030cae0, screen=0x80315020) at kernel/qplatformintegration.cpp:496
#11 0xb169bd52 in QXcbConnection::destroyScreen (this=0x803113f0, screen=<optimized out>) at qxcbconnection.cpp:386
#12 0xb169c6d9 in QXcbConnection::updateScreens (this=0x803113f0, event=0xb0c0abe0) at qxcbconnection.cpp:281
#13 0xb169da3a in QXcbConnection::handleXcbEvent (this=0x803113f0, event=0xb0c0abe0) at qxcbconnection.cpp:1250
#14 0xb169def7 in QXcbConnection::processXcbEvents (this=0x803113f0) at qxcbconnection.cpp:1741
#15 0xb16d4de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188
#16 0xb52138e0 in QMetaCallEvent::placeMetaCall (this=0xb0c02ff0, object=0x803113f0) at kernel/qobject.cpp:502
#17 0xb5217563 in QObject::event (this=0x803113f0, e=0xb0c02ff0) at kernel/qobject.cpp:1263
#18 0xb16a0a49 in QXcbConnection::event (this=0x803113f0, e=0xb0c02ff0) at qxcbconnection.cpp:2357
#19 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3799
#20 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3556
#21 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x803113f0, event=0xb0c02ff0) at kernel/qcoreapplication.cpp:988
#22 0xb51eb477 in QCoreApplication::sendEvent (event=0xb0c02ff0, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#23 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649
#24 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503
#25 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276
#26 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203
#27 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856
#28 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#29 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990
#30 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#31 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121
#32 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212
#33 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#34 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#35 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975
#36 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166
(gdb) up
#1  0x801146ba in DesktopView::~DesktopView (this=0x80674c30, __in_chrg=<optimized out>) at ./shell/desktopview.cpp:74
74      }
(gdb) 
#2  0x801289d1 in ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1047
1047        delete desktopView;
(gdb) b 1048
Breakpoint 3 at 0x801288ea: file ./shell/shellcorona.cpp, line 1048.
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 3, ShellCorona::removeDesktop (this=0x80378d28, desktopView=0x80674c30) at ./shell/shellcorona.cpp:1049
1049    }
(gdb) print idx
$1 = 0
(gdb) print m_desktopViewforId.d
$2 = (QMapData<int, DesktopView*> *) 0x80517378
(gdb) print *m_desktopViewforId.d
$3 = {<QMapDataBase> = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {_M_i = 1}, <No data fields>}}}, size = 1, header = {p = 0, left = 0x80660800, right = 0x0}, mostLeftNode = 0x80660800}, <No data fields>}
(gdb) b PlasmaQuick::ContainmentView::containment
Breakpoint 4 at 0x80105ab0 (3 locations)
(gdb) disa 4.1
(gdb) disa 4.2
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263
263         return d->containment;
(gdb) bt
#0  PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263
#1  0x8012721a in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1826
#2  0x80127166 in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1818
#3  0xb7033fab in Plasma::Containment::screen (this=0x80448088) at ./src/plasma/containment.cpp:489
#4  0xa5cdbbc7 in NotificationsApplet::onScreenChanges (this=0x80c67be0) at ./applets/notifications/lib/notificationsapplet.cpp:65
#5  0xb5216aae in QtPrivate::QSlotObjectBase::call (a=0xbfa0d398, r=0x80c67be0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#6  QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723
#7  0xb5216f8d in QMetaObject::activate (sender=0xb65e5900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb65e4dc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602
#8  0xb65cbee2 in KWindowSystem::workAreaChanged (this=0xb65e5900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337
#9  0xaf6e3e8c in NETEventFilter::nativeEventFilter (this=0x80599818, ev=0x80c84db0) at ./src/platforms/xcb/kwindowsystem.cpp:258
#10 0xb51e5670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466
#11 0xb169d122 in QXcbConnection::handleXcbEvent (this=0x803113f0, event=0x80c84db0) at qxcbconnection.cpp:1106
#12 0xb169def7 in QXcbConnection::processXcbEvents (this=0x803113f0) at qxcbconnection.cpp:1741
#13 0xb16d4de1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188
#14 0xb52138e0 in QMetaCallEvent::placeMetaCall (this=0xb0c02ff0, object=0x803113f0) at kernel/qobject.cpp:502
#15 0xb5217563 in QObject::event (this=0x803113f0, e=0xb0c02ff0) at kernel/qobject.cpp:1263
#16 0xb16a0a49 in QXcbConnection::event (this=0x803113f0, e=0xb0c02ff0) at qxcbconnection.cpp:2357
#17 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3799
#18 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x803113f0, e=0xb0c02ff0) at kernel/qapplication.cpp:3556
#19 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x803113f0, event=0xb0c02ff0) at kernel/qcoreapplication.cpp:988
#20 0xb51eb477 in QCoreApplication::sendEvent (event=0xb0c02ff0, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649
#22 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503
#23 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276
#24 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203
#25 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856
#26 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#27 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990
#28 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#29 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121
#30 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212
#31 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#32 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#33 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975
#34 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263
263         return d->containment;
(gdb) 
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 4, PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263
263         return d->containment;
(gdb) 
Continuing.

Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault.
QWeakPointer<QObject>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604
warning: Source file is more recent than executable.
604         inline T *data() const { return d == Q_NULLPTR || d->strongref.load() == 0 ? Q_NULLPTR : value; }
(gdb) bt
#0  QWeakPointer<QObject>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604
#1  QPointer<Plasma::Containment>::data (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:86
#2  QPointer<Plasma::Containment>::operator Plasma::Containment* (this=0x80672928) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:92
#3  PlasmaQuick::ContainmentView::containment (this=0x80674c30) at ./src/plasmaquick/containmentview.cpp:263
#4  0x8012721a in ShellCorona::screenForContainment (this=0x80378d28, containment=<optimized out>) at ./shell/shellcorona.cpp:1826
#5  0xb7033fab in Plasma::Containment::screen (this=0x803df5a8) at ./src/plasma/containment.cpp:489
#6  0xae5ae400 in AppletInterface::screen (this=0x803e71b8) at ./src/scriptengines/qml/plasmoid/appletinterface.cpp:557
#7  0xae5b5948 in ContainmentInterface::adjustToAvailableScreenRegion (this=0x803e71b8, x=0, y=0, w=30, h=30) at ./src/scriptengines/qml/plasmoid/containmentinterface.cpp:305
#8  0xae5bede2 in ContainmentInterface::qt_static_metacall (_o=0x803e71b8, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfa0bf64) at ./obj-i686-linux-gnu/src/scriptengines/qml/moc_containmentinterface.cpp:218
#9  0xae5bf3d3 in ContainmentInterface::qt_metacall (this=0x803e71b8, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfa0bf64) at ./obj-i686-linux-gnu/src/scriptengines/qml/moc_containmentinterface.cpp:393
#10 0xb684a667 in QQmlObjectOrGadget::metacall (this=0xbfa0c1a4, type=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=0xbfa0bf64) at qml/qqmlpropertycache.cpp:1547
#11 0xb67d28d0 in CallMethod (object=..., index=<optimized out>, returnType=returnType@entry=26, argCount=<optimized out>, argTypes=<optimized out>, engine=<optimized out>, callArgs=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:1137
#12 0xb67d3b43 in CallPrecise (object=..., data=..., engine=engine@entry=0x803e84c0, callArgs=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1388
#13 0xb67d451b in QV4::QObjectMethod::callInternal (this=0xad5a04e8, callData=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1871
#14 0xb67d4bbc in QV4::QObjectMethod::call (m=0xad5a04e8, callData=0xad5a0498) at jsruntime/qv4qobjectwrapper.cpp:1810
#15 0xb67eb372 in QV4::Object::call (d=0xad5a0498, this=0xad5a04e8) at jsruntime/qv4object_p.h:332
#16 QV4::Runtime::callProperty (engine=0x803e84c0, nameIndex=112, callData=0xad5a0498) at jsruntime/qv4runtime.cpp:1030
#17 0xb67d83da in QV4::Moth::VME::run (this=0xbfa0c3bf, engine=0x803e84c0, code=<optimized out>, storeJumpTable=0x0) at jsruntime/qv4vme_moth.cpp:585
#18 0xb67da55e in QV4::Moth::VME::exec (engine=0x803e84c0, code=0xb01e5470 "\350\202}\266\032") at jsruntime/qv4vme_moth.cpp:974
#19 0xb678082f in QV4::SimpleScriptFunction::call (that=0xad5a03e8, callData=0xad5a0398) at jsruntime/qv4functionobject.cpp:582
#20 0xb67eae1c in QV4::Object::call (d=0xad5a0398, this=<optimized out>) at jsruntime/qv4object_p.h:332
#21 QV4::Runtime::callActivationProperty (engine=0x803e84c0, nameIndex=86, callData=0xad5a0398) at jsruntime/qv4runtime.cpp:980
#22 0xb67d8550 in QV4::Moth::VME::run (this=0xbfa0c5bf, engine=0x803e84c0, code=0xb01e74fc "\020\205}\266V", storeJumpTable=0x0) at jsruntime/qv4vme_moth.cpp:632
#23 0xb67da55e in QV4::Moth::VME::exec (engine=0x803e84c0, code=0xb01e7498 "\350\202}\266\v") at jsruntime/qv4vme_moth.cpp:974
#24 0xb678082f in QV4::SimpleScriptFunction::call (that=0xae6086f0, callData=0xad5a0318) at jsruntime/qv4functionobject.cpp:582
#25 0xb68773bf in QV4::Object::call (d=0xad5a0318, this=<optimized out>) at ../../include/QtQml/5.7.1/QtQml/private/../../../../../src/qml/jsruntime/qv4object_p.h:332
#26 QQmlJavaScriptExpression::evaluate (this=0x80656350, callData=0xad5a0318, isUndefined=0x0) at qml/qqmljavascriptexpression.cpp:196
#27 0xb6819c2a in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at qml/qqmlboundsignal.cpp:247
#28 0xb681ae75 in QQmlBoundSignal_callback (e=0x80656310, a=0x0) at qml/qqmlboundsignal.cpp:379
#29 0xb68539d0 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at qml/qqmlnotifier.cpp:100
#30 0xb67fac1c in QQmlData::signalEmitted (object=0x80654660, index=3, a=0x0) at qml/qqmlengine.cpp:779
#31 0xb5216df3 in QMetaObject::activate (sender=0x80654660, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3618
#32 0xb5216f8d in QMetaObject::activate (sender=0x80654660, m=0xb6a386bc <QQmlTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3602
#33 0xb68e5e92 in QQmlTimer::triggered (this=0x80654660) at .moc/moc_qqmltimer_p.cpp:260
#34 0xb68d421a in QQmlTimer::event (this=0x80654660, e=0x813d8da8) at types/qqmltimer.cpp:340
#35 0xb5b6017a in QApplicationPrivate::notify_helper (this=0x8030af50, receiver=0x80654660, e=0x813d8da8) at kernel/qapplication.cpp:3799
#36 0xb5b6803c in QApplication::notify (this=0xbfa0dbb8, receiver=0x80654660, e=0x813d8da8) at kernel/qapplication.cpp:3556
#37 0xb51e8a7d in QCoreApplication::notifyInternal2 (receiver=0x80654660, event=0x813d8da8) at kernel/qcoreapplication.cpp:988
#38 0xb51eb477 in QCoreApplication::sendEvent (event=0x813d8da8, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#39 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x80305e90) at kernel/qcoreapplication.cpp:1649
#40 0xb51eb8b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503
#41 0xb5241733 in postEventSourceDispatch (s=0x80339ef8) at kernel/qeventdispatcher_glib.cpp:276
#42 0xb3d544e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203
#43 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856
#44 0xb3d54789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#45 0xb3d54854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990
#46 0xb5241b23 in QEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#47 0xb16d5d81 in QPAEventDispatcherGlib::processEvents (this=0x80337f58, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121
#48 0xb51e665d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212
#49 0xb51ef7cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#50 0xb5520aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#51 0xb5b600d4 in QApplication::exec () at kernel/qapplication.cpp:2975
#52 0x8010768c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166

































----------
Even with upower installed and ~/.local/share/kscreen/ directory removed the crash happens:

Please watch the pointer 0x816d85a0


benutzer@debian:~$ gdb -q --pid 6035
Attaching to process 6035
[New LWP 6045]
[New LWP 6054]
[New LWP 6063]
[New LWP 6082]
[New LWP 6083]
[New LWP 6084]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
0xb7724cf9 in __kernel_vsyscall ()
(gdb) directory /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0
Source directories searched: /home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4
Source directories searched: /home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) directory /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml
Source directories searched: /home/benutzer/debian/qtbase-opensource-src/orig/qtdeclarative-opensource-src/orig/qtdeclarative-opensource-src-5.7.1/src/qml:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/gui:/home/benutzer/debian/qtbase-opensource-src/orig/qtbase-opensource-src-5.7.1+dfsg/src/corelib:/home/benutzer/debian/plasma-workspace/orig/plasma-workspace-5.8.4:/home/benutzer/debian/plasma-framework/orig/plasma-framework-5.28.0:$cdir:$cwd
(gdb) set height 0
(gdb) set width 0
(gdb) source /usr/share/doc/kdesdk-scripts/examples/kde-devel-gdb
(gdb) b ShellCorona::removeDesktop
Breakpoint 1 at 0x800e0870: file ./shell/shellcorona.cpp, line 1027.
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" hit Breakpoint 1, ShellCorona::removeDesktop (this=0x813d1d90, desktopView=0x816d85a0) at ./shell/shellcorona.cpp:1027
1027    {
(gdb) next
1028        const int idx = m_screenPool->id(desktopView->screenToFollow()->name());
(gdb) step
DesktopView::screenToFollow (this=0x816d85a0) at ./shell/desktopview.cpp:100
100     {
(gdb) next
101         return m_screenToFollow;
(gdb) 
102     }
(gdb) step
QScreen::name (this=0x8138b290) at kernel/qscreen.cpp:158
158     {
(gdb) next
160         return d->platformScreen->name();
(gdb) 
158     {
(gdb) 
160         return d->platformScreen->name();
(gdb) 
161     }
(gdb) step
ScreenPool::id (this=0x813ad2d8, connector=...) at ./shell/screenpool.cpp:127
127     {
(gdb) printq5string connector
DVI-I-1
(gdb) next
128         if (!m_idForConnector.contains(connector)) {
(gdb) 
132         return m_idForConnector.value(connector);
(gdb) 
133     }
(gdb) 
132         return m_idForConnector.value(connector);
(gdb) 
133     }
(gdb) 
ShellCorona::removeDesktop (this=0x813d1d90, desktopView=0x816d85a0) at ./shell/shellcorona.cpp:1030
1030        if (!m_desktopViewforId.contains(idx)) {
(gdb) print idx
$1 = 0
(gdb) next
1034        QMutableHashIterator<const Plasma::Containment *, PanelView *> it(m_panelViews);
(gdb) 
1040                m_waitingPanels << panelView->containment();
(gdb) 
1041                it.remove();
(gdb) 
1035        while (it.hasNext()) {
(gdb) 
1036            it.next();
(gdb) 
1037            PanelView *panelView = it.value();
(gdb) 
1036            it.next();
(gdb) 
1039            if (panelView->containment()->screen() == idx) {
(gdb) 

1040                m_waitingPanels << panelView->containment();
(gdb) 
1041                it.remove();
(gdb) 
1042                delete panelView;
(gdb) 
1041                it.remove();
(gdb) 
1035        while (it.hasNext()) {
(gdb) 
1047        delete desktopView;
(gdb) 
1048        m_desktopViewforId.remove(idx);
(gdb) print desktopView
$2 = (DesktopView *) 0x816d85a0
(gdb) cont
Continuing.

Thread 1 "plasmashell.ori" received signal SIGSEGV, Segmentation fault.
QWeakPointer<QObject>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604
warning: Source file is more recent than executable.
604         inline T *data() const { return d == Q_NULLPTR || d->strongref.load() == 0 ? Q_NULLPTR : value; }
(gdb) bt
#0  QWeakPointer<QObject>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:604
#1  QPointer<Plasma::Containment>::data (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:86
#2  QPointer<Plasma::Containment>::operator Plasma::Containment* (this=0x816d93f0) at /usr/include/i386-linux-gnu/qt5/QtCore/qpointer.h:92
#3  PlasmaQuick::ContainmentView::containment (this=0x816d85a0) at ./src/plasmaquick/containmentview.cpp:263
#4  0x800df21a in ShellCorona::screenForContainment (this=0x813d1d90, containment=<optimized out>) at ./shell/shellcorona.cpp:1826
#5  0x800df166 in ShellCorona::screenForContainment (this=0x813d1d90, containment=<optimized out>) at ./shell/shellcorona.cpp:1818
#6  0xb6fecfab in Plasma::Containment::screen (this=0x814d9cd0) at ./src/plasma/containment.cpp:489
#7  0xa5ccbbc7 in NotificationsApplet::onScreenChanges (this=0x81cd2ed0) at ./applets/notifications/lib/notificationsapplet.cpp:65
#8  0xb51cfaae in QtPrivate::QSlotObjectBase::call (a=0xbfd7a5a8, r=0x81cd2ed0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#9  QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3723
#10 0xb51cff8d in QMetaObject::activate (sender=0xb659e900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, m=0xb659ddc0 <KWindowSystem::staticMetaObject>, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3602
#11 0xb6584ee2 in KWindowSystem::workAreaChanged (this=0xb659e900 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>) at ./obj-i686-linux-gnu/src/KF5WindowSystem_automoc.dir/moc_kwindowsystem_WAINN7OXDV4STE.cpp:337
#12 0xb01afe8c in NETEventFilter::nativeEventFilter (this=0x81609180, ev=0xb0c0c398) at ./src/platforms/xcb/kwindowsystem.cpp:258
#13 0xb519e670 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=<optimized out>, result=<optimized out>) at kernel/qabstracteventdispatcher.cpp:466
#14 0xb1656122 in QXcbConnection::handleXcbEvent (this=0x8137d3f0, event=0xb0c0c398) at qxcbconnection.cpp:1106
#15 0xb1656ef7 in QXcbConnection::processXcbEvents (this=0x8137d3f0) at qxcbconnection.cpp:1741
#16 0xb168dde1 in QXcbConnection::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qxcbconnection.cpp:188
#17 0xb51cc8e0 in QMetaCallEvent::placeMetaCall (this=0xb0c0b330, object=0x8137d3f0) at kernel/qobject.cpp:502
#18 0xb51d0563 in QObject::event (this=0x8137d3f0, e=0xb0c0b330) at kernel/qobject.cpp:1263
#19 0xb1659a49 in QXcbConnection::event (this=0x8137d3f0, e=0xb0c0b330) at qxcbconnection.cpp:2357
#20 0xb5b1917a in QApplicationPrivate::notify_helper (this=0x81376f50, receiver=0x8137d3f0, e=0xb0c0b330) at kernel/qapplication.cpp:3799
#21 0xb5b2103c in QApplication::notify (this=0xbfd7adc8, receiver=0x8137d3f0, e=0xb0c0b330) at kernel/qapplication.cpp:3556
#22 0xb51a1a7d in QCoreApplication::notifyInternal2 (receiver=0x8137d3f0, event=0xb0c0b330) at kernel/qcoreapplication.cpp:988
#23 0xb51a4477 in QCoreApplication::sendEvent (event=0xb0c0b330, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>, data=0x81371e90) at kernel/qcoreapplication.cpp:1649
#25 0xb51a48b7 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1503
#26 0xb51fa733 in postEventSourceDispatch (s=0x813a6470) at kernel/qeventdispatcher_glib.cpp:276
#27 0xb3d0d4e9 in g_main_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3203
#28 g_main_context_dispatch (context=0xb0c02a00) at ././glib/gmain.c:3856
#29 0xb3d0d789 in g_main_context_iterate (context=context@entry=0xb0c02a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#30 0xb3d0d854 in g_main_context_iteration (context=0xb0c02a00, may_block=1) at ././glib/gmain.c:3990
#31 0xb51fab23 in QEventDispatcherGlib::processEvents (this=0x813a3ec8, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#32 0xb168ed81 in QPAEventDispatcherGlib::processEvents (this=0x813a3ec8, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:121
#33 0xb519f65d in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:212
#34 0xb51a87cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#35 0xb54d9aa1 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1633
#36 0xb5b190d4 in QApplication::exec () at kernel/qapplication.cpp:2975
#37 0x800bf68c in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:166

Reply to: