Bug 355644 - Plasma crashed after clicking in the panel
Summary: Plasma crashed after clicking in the panel
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.4.95
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-11-20 14:28 UTC by Michael Palimaka
Modified: 2016-08-09 08:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Palimaka 2015-11-20 14:28:41 UTC
Application: plasmashell (5.4.95)

Qt Version: 5.5.1
Operating System: Linux 4.1.7-hardened-r1 x86_64
Distribution: "Gentoo Base System release 2.2"

-- Information about the crash:
- What I was doing when the application crashed:

Closed the Notes widgets settings dialog and clicked in the panel.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f3091b9e740 (LWP 13985))]

Thread 8 (Thread 0x7f30875ef700 (LWP 14000)):
#0  0x00007f30956d2178 in g_mutex_lock () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f309567da6b in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f309567e416 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f309567e691 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3098a5b874 in QEventDispatcherGlib::processEvents (this=0x7f30800008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#5  0x00007f30989fe9cb in QEventLoop::exec (this=this@entry=0x7f30875eee30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f3098811efd in QThread::exec (this=this@entry=0x55aa6ce9d080) at thread/qthread.cpp:503
#7  0x00007f3099fe22d8 in QQmlThreadPrivate::run (this=0x55aa6ce9d080) at qml/ftw/qqmlthread.cpp:141
#8  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6ce9d080) at thread/qthread_unix.cpp:331
#9  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#10 0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f307ffff700 (LWP 14002)):
#0  0x00007f30956d214c in g_mutex_lock () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f309567da6b in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f309567e416 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f309567e691 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3098a5b874 in QEventDispatcherGlib::processEvents (this=0x7f30780008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#5  0x00007f30989fe9cb in QEventLoop::exec (this=this@entry=0x7f307fffee30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f3098811efd in QThread::exec (this=this@entry=0x55aa6d037870) at thread/qthread.cpp:503
#7  0x00007f3099fe22d8 in QQmlThreadPrivate::run (this=0x55aa6d037870) at qml/ftw/qqmlthread.cpp:141
#8  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6d037870) at thread/qthread_unix.cpp:331
#9  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#10 0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f307effe700 (LWP 14018)):
#0  0x00007f309567deed in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f309567e493 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f309567e691 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3098a5b874 in QEventDispatcherGlib::processEvents (this=0x7f30700008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#4  0x00007f30989fe9cb in QEventLoop::exec (this=this@entry=0x7f307effde30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f3098811efd in QThread::exec (this=this@entry=0x55aa6d126ba0) at thread/qthread.cpp:503
#6  0x00007f3099fe22d8 in QQmlThreadPrivate::run (this=0x55aa6d126ba0) at qml/ftw/qqmlthread.cpp:141
#7  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6d126ba0) at thread/qthread_unix.cpp:331
#8  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#9  0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f307dffd700 (LWP 14084)):
#0  0x00007f3097931dbf in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f309af59b5d in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f309b034180 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007f309af59bbb in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#4  0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f3077fff700 (LWP 14147)):
#0  0x00007f30956d21ba in g_mutex_unlock () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f309567da52 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f309567e416 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f309567e691 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3098a5b874 in QEventDispatcherGlib::processEvents (this=0x7f306c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#5  0x00007f30989fe9cb in QEventLoop::exec (this=this@entry=0x7f3077ffede0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f3098811efd in QThread::exec (this=this@entry=0x55aa6d64a530) at thread/qthread.cpp:503
#7  0x00007f309a39f6da in QQuickPixmapReader::run (this=0x55aa6d64a530) at util/qquickpixmapcache.cpp:760
#8  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6d64a530) at thread/qthread_unix.cpp:331
#9  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#10 0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f3077014700 (LWP 14160)):
#0  0x00007f3097931dbf in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f30988182c3 in wait (time=18446744073709551615, this=0x55aa6d246670) at thread/qwaitcondition_unix.cpp:136
#2  QWaitCondition::wait (this=this@entry=0x55aa6d7e2688, mutex=mutex@entry=0x55aa6d7e2680, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3  0x00007f309a427db5 in takeEvent (wait=true, this=0x55aa6d7e2678) at scenegraph/qsgthreadedrenderloop.cpp:224
#4  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x55aa6d7e2600) at scenegraph/qsgthreadedrenderloop.cpp:657
#5  0x00007f309a4281a8 in QSGRenderThread::run (this=0x55aa6d7e2600) at scenegraph/qsgthreadedrenderloop.cpp:686
#6  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6d7e2600) at thread/qthread_unix.cpp:331
#7  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#8  0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f3074f3e700 (LWP 14189)):
#0  0x00007f3097931dbf in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f30988182c3 in wait (time=18446744073709551615, this=0x55aa6d996580) at thread/qwaitcondition_unix.cpp:136
#2  QWaitCondition::wait (this=this@entry=0x55aa6db886a8, mutex=mutex@entry=0x55aa6db886a0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3  0x00007f309a427db5 in takeEvent (wait=true, this=0x55aa6db88698) at scenegraph/qsgthreadedrenderloop.cpp:224
#4  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x55aa6db88620) at scenegraph/qsgthreadedrenderloop.cpp:657
#5  0x00007f309a4281a8 in QSGRenderThread::run (this=0x55aa6db88620) at scenegraph/qsgthreadedrenderloop.cpp:686
#6  0x00007f3098817ab9 in QThreadPrivate::start (arg=0x55aa6db88620) at thread/qthread_unix.cpp:331
#7  0x00007f309792c4dc in start_thread () from /lib64/libpthread.so.0
#8  0x00007f309813692d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f3091b9e740 (LWP 13985)):
[KCrash Handler]
#6  0x00007f308d5499bf in ?? () from /usr/lib64/dri/i965_dri.so
#7  0x00007f308c487c05 in Plasma::WindowThumbnail::discardPixmap (this=0x55aa6e3df9f0) at /var/tmp/portage/kde-frameworks/plasma-5.16.0/work/plasma-framework-5.16.0/src/declarativeimports/core/windowthumbnail.cpp:621
#8  0x00007f308c487dfe in discardPixmap (this=0x55aa6e3df9f0) at /var/tmp/portage/kde-frameworks/plasma-5.16.0/work/plasma-framework-5.16.0/src/declarativeimports/core/windowthumbnail.cpp:604
#9  Plasma::WindowThumbnail::~WindowThumbnail (this=0x55aa6e3df9f0, __in_chrg=<optimized out>) at /var/tmp/portage/kde-frameworks/plasma-5.16.0/work/plasma-framework-5.16.0/src/declarativeimports/core/windowthumbnail.cpp:122
#10 0x00007f308c461497 in ~QQmlElement (this=0x55aa6e3df9f0, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:98
#11 QQmlPrivate::QQmlElement<Plasma::WindowThumbnail>::~QQmlElement (this=0x55aa6e3df9f0, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:98
#12 0x00007f3098a31c68 in QObject::event (this=this@entry=0x55aa6e3df9f0, e=e@entry=0x55aa6e3e1aa0) at kernel/qobject.cpp:1230
#13 0x00007f309a44d963 in QQuickItem::event (this=0x55aa6e3df9f0, ev=0x55aa6e3e1aa0) at items/qquickitem.cpp:7317
#14 0x00007f309931522c in QApplicationPrivate::notify_helper (this=this@entry=0x55aa6cbbea30, receiver=receiver@entry=0x55aa6e3df9f0, e=e@entry=0x55aa6e3e1aa0) at kernel/qapplication.cpp:3716
#15 0x00007f309931acf2 in QApplication::notify (this=0x7ffde6e6ffa0, receiver=0x55aa6e3df9f0, e=0x55aa6e3e1aa0) at kernel/qapplication.cpp:3499
#16 0x00007f3098a003dd in QCoreApplication::notifyInternal (this=0x7ffde6e6ffa0, receiver=0x55aa6e3df9f0, event=event@entry=0x55aa6e3e1aa0) at kernel/qcoreapplication.cpp:965
#17 0x00007f3098a03bb3 in sendEvent (event=0x55aa6e3e1aa0, receiver=<optimized out>) at kernel/qcoreapplication.h:224
#18 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x55aa6cbb4770) at kernel/qcoreapplication.cpp:1593
#19 0x00007f3098a041ee in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1451
#20 0x00007f3098a5b7a9 in postEventSourceDispatch (s=0x55aa6cdfff70) at kernel/qeventdispatcher_glib.cpp:271
#21 0x00007f309567e2f9 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#22 0x00007f309567e588 in ?? () from /usr/lib64/libglib-2.0.so.0
#23 0x00007f309567e691 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#24 0x00007f3098a5b85d in QEventDispatcherGlib::processEvents (this=0x55aa6cd91830, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#25 0x00007f30989fe9cb in QEventLoop::exec (this=this@entry=0x7ffde6e6fe30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#26 0x00007f3098a070d6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1229
#27 0x000055aa6c3b83c1 in main (argc=4, argv=<optimized out>) at /var/tmp/portage/kde-plasma/plasma-workspace-5.4.95/work/plasma-workspace-5.4.95/shell/main.cpp:179

Reported using DrKonqi
Comment 1 David Edmundson 2016-08-09 08:37:05 UTC
Git commit 45a2f5a8286d9884fdf1161c09da5807c0528481 by David Edmundson.
Committed on 09/08/2016 at 08:37.
Pushed by davidedmundson into branch 'master'.

Don't delete gl texture twice in thumbnail

The QSGTextures are created with

window()->createTextureFromId(m_texture, QSize(w,h),
QuickWindow::TextureOwnsGLTexture));

this means we don't want to be deleting textures ourselves too, it will
be deleted when we delete the QSGTexture, which is a scoped pointer
inside our QSGNode.
Related: bug 365946
REVIEW: 126131

M  +2    -2    src/declarativeimports/core/windowthumbnail.cpp

http://commits.kde.org/plasma-framework/45a2f5a8286d9884fdf1161c09da5807c0528481