Bug 360265 - Plasmashell crash upon updating to new systray
Summary: Plasmashell crash upon updating to new systray
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Tray widget (other bugs)
Version First Reported In: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-08 20:01 UTC by Hrvoje Senjan
Modified: 2016-03-09 10:53 UTC (History)
2 users (show)

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 Hrvoje Senjan 2016-03-08 20:01:23 UTC
So after new tray commits, can't get plasma to start.

Reproducible: Always




Plasma::Applet::id (this=0x0) at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:131
131     /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp: No such file or directory.
(gdb) bt
#0  0x00007ffff6144340 in Plasma::Applet::id() const (this=0x0) at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:131
#1  0x00007fffbde54353 in  () at /usr/lib64/qt5/plugins/plasma/applets/org.kde.plasma.systemtray.so
#2  0x00007ffff6144d20 in Plasma::Applet::flushPendingConstraintsEvents() (this=0x1517ce0)
    at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:552
#3  0x00007ffff6146e0b in Plasma::Applet::timerEvent(QTimerEvent*) (this=0x1517ce0, event=<optimized out>)
    at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:773
#4  0x00007ffff1d8dfc4 in QObject::event(QEvent*) (this=0x1517ce0, e=<optimized out>) at kernel/qobject.cpp:1237
#5  0x00007ffff2eeb60c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#6  0x00007ffff2eefa22 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#7  0x00007ffff1d63005 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1517ce0, event=event@entry=0x7fffffffd640)
    at kernel/qcoreapplication.cpp:1015
#8  0x00007ffff1db2d4e in QTimerInfoList::activateTimers() (event=0x7fffffffd640, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:227
#9  0x00007ffff1db2d4e in QTimerInfoList::activateTimers() (this=0x770660) at kernel/qtimerinfo_unix.cpp:637
#10 0x00007ffff1db3111 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176
#11 0x00007fffedb90c84 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#12 0x00007fffedb90ed8 in  () at /usr/lib64/libglib-2.0.so.0
#13 0x00007fffedb90f7c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#14 0x00007ffff1db33dc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7735b0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:417
#15 0x00007ffff1d6104b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd880, flags=..., flags@entry=...)
    at kernel/qeventloop.cpp:204
#16 0x00007ffff1d68f56 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1285
#17 0x000000000041cfec in  ()
#18 0x00007ffff13eab05 in __libc_start_main () at /lib64/libc.so.6
#19 0x000000000041d165 in _start ()
Comment 1 Hrvoje Senjan 2016-03-08 20:06:05 UTC
with plasma-workspace debuginfo:

#0  0x00007ffff6144340 in Plasma::Applet::id() const (this=0x0) at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:131
#1  0x00007fffbde54353 in SystemTrayContainer::constraintsEvent(QFlags<Plasma::Types::Constraint>) (this=0xfc3050, constraints=...)
    at /usr/src/debug/plasma-workspace-5.5.90git~20160308T142059~972cc4d/applets/systemtray/container/systemtraycontainer.cpp:90
#2  0x00007ffff6144d20 in Plasma::Applet::flushPendingConstraintsEvents() (this=0xfc3050)
    at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:552
#3  0x00007ffff6146e0b in Plasma::Applet::timerEvent(QTimerEvent*) (this=0xfc3050, event=<optimized out>)
    at /usr/src/debug/plasma-framework-5.20.0git.20160308T153950~5b0ec83/src/plasma/applet.cpp:773
#4  0x00007ffff1d8dfc4 in QObject::event(QEvent*) (this=0xfc3050, e=<optimized out>) at kernel/qobject.cpp:1237
#5  0x00007ffff2eeb60c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#6  0x00007ffff2eefa22 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#7  0x00007ffff1d63005 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0xfc3050, event=event@entry=0x7fffffffd640)
    at kernel/qcoreapplication.cpp:1015
#8  0x00007ffff1db2d4e in QTimerInfoList::activateTimers() (event=0x7fffffffd640, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:227
#9  0x00007ffff1db2d4e in QTimerInfoList::activateTimers() (this=0x770740) at kernel/qtimerinfo_unix.cpp:637
#10 0x00007ffff1db3111 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176
#11 0x00007fffedb90c84 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#12 0x00007fffedb90ed8 in  () at /usr/lib64/libglib-2.0.so.0
#13 0x00007fffedb90f7c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#14 0x00007ffff1db33dc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7733a0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:417
#15 0x00007ffff1d6104b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd880, flags=..., flags@entry=...)
    at kernel/qeventloop.cpp:204
#16 0x00007ffff1d68f56 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1285
#17 0x000000000041cfec in main(int, char**) (argc=1, argv=<optimized out>)
    at /usr/src/debug/plasma-workspace-5.5.90git~20160308T142059~972cc4d/shell/main.cpp:139
Comment 2 Ivan Čukić 2016-03-09 09:53:02 UTC
I've tracked down the problem:

- plasmashell tries to create a new containment, systemtraycontainer.cpp:89
- plasma framework rejects because (corona.cpp:244) immutability != Mutable
Comment 3 Ivan Čukić 2016-03-09 09:55:18 UTC
Additionally, once the new tray is initialised by force, everything works properly on subsequent runs.
Comment 4 Ivan Čukić 2016-03-09 10:53:52 UTC
Git commit fdd4a14b2e30d10eeee25f481a3e11969194c7ac by Ivan Čukić.
Committed on 09/03/2016 at 10:53.
Pushed by ivan into branch 'master'.

Forcing the creation of the systray containment even if plasma is not mutable

This requires the latest master of plasma-framework (as of a minute ago)

Reviewed-by: mart

M  +1    -1    applets/systemtray/container/systemtraycontainer.cpp

http://commits.kde.org/plasma-workspace/fdd4a14b2e30d10eeee25f481a3e11969194c7ac