Application: plasmashell (5.4.2) Qt Version: 5.5.0 Operating System: Linux 4.2.3-200.fc22.x86_64 x86_64 Distribution: "Fedora release 22 (Twenty Two)" -- Information about the crash: - What I was doing when the application crashed: Booted up machine, and logged in to desktop.. Plasma crashed and restarted. Machine is running on 64bit Fedora 22 (all latest packages at the moment: 4.11.2015), and it has dual screen setup on laptop (two external displays, laptops internal display is disabled). Machine details: Thinkpad, I5-3230M, 8GB memory, and: 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) This bug looks much like the one in 353603, but this bug reporting tool doesn't allow to attach info to that report (attach button does nothing). The crash can be reproduced sometimes. -- Backtrace: Application: Plasma (plasmashell), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". 81 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS) [Current thread is 1 (Thread 0x7fb76a59e900 (LWP 1810))] Thread 8 (Thread 0x7fb74a5ba700 (LWP 1814)): #0 0x00007fb761f892fd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fb7683f2182 in _xcb_conn_wait (__timeout=-1, __nfds=1, __fds=0x7fb74a5b9bc0) at /usr/include/bits/poll2.h:46 #2 0x00007fb7683f2182 in _xcb_conn_wait (c=c@entry=0x17ec580, cond=cond@entry=0x17ec5c0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459 #3 0x00007fb7683f3c77 in xcb_wait_for_event (c=0x17ec580) at xcb_in.c:648 #4 0x00007fb74c53b999 in QXcbEventReader::run() (this=0x17f6bb0) at qxcbconnection.cpp:1214 #5 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x17f6bb0) at thread/qthread_unix.cpp:331 #6 0x00007fb760c3a555 in start_thread (arg=0x7fb74a5ba700) at pthread_create.c:333 #7 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 7 (Thread 0x7fb7439d6700 (LWP 1907)): #0 0x00007fb75d13de43 in g_source_iter_next (iter=iter@entry=0x7fb7439d5af0, source=source@entry=0x7fb7439d5ae8) at gmain.c:924 #1 0x00007fb75d14072a in g_main_context_check (context=context@entry=0x7fb73c000990, max_priority=2147483647, fds=fds@entry=0x7fb73c003070, n_fds=n_fds@entry=1) at gmain.c:3629 #2 0x00007fb75d140d60 in g_main_context_iterate (context=context@entry=0x7fb73c000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3805 #3 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb73c000990, may_block=may_block@entry=1) at gmain.c:3869 #4 0x00007fb762dccdab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fb73c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420 #5 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fb7439d5ca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007fb762b905a4 in QThread::exec() (this=this@entry=0x18cd570) at thread/qthread.cpp:503 #7 0x00007fb766e87245 in QQmlThreadPrivate::run() (this=0x18cd570) at /usr/src/debug/qtdeclarative-opensource-src-5.5.0/src/qml/qml/ftw/qqmlthread.cpp:141 #8 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x18cd570) at thread/qthread_unix.cpp:331 #9 0x00007fb760c3a555 in start_thread (arg=0x7fb7439d6700) at pthread_create.c:333 #10 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 6 (Thread 0x7fb73afe6700 (LWP 1988)): #0 0x00007fb761f892fd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fb75d140dbc in g_main_context_iterate (priority=2147483647, n_fds=1, fds=0x7fb734002e70, timeout=<optimized out>, context=0x7fb734000990) at gmain.c:4103 #2 0x00007fb75d140dbc in g_main_context_iterate (context=context@entry=0x7fb734000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3803 #3 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb734000990, may_block=may_block@entry=1) at gmain.c:3869 #4 0x00007fb762dccdab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fb7340008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420 #5 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fb73afe5ca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007fb762b905a4 in QThread::exec() (this=this@entry=0x2425250) at thread/qthread.cpp:503 #7 0x00007fb766e87245 in QQmlThreadPrivate::run() (this=0x2425250) at /usr/src/debug/qtdeclarative-opensource-src-5.5.0/src/qml/qml/ftw/qqmlthread.cpp:141 #8 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x2425250) at thread/qthread_unix.cpp:331 #9 0x00007fb760c3a555 in start_thread (arg=0x7fb73afe6700) at pthread_create.c:333 #10 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 5 (Thread 0x7fb739480700 (LWP 2015)): #0 0x00007fb760c3f540 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007fb769cc1494 in QTWTF::TCMalloc_PageHeap::scavengerThread() (this=0x7fb769fa9e80 <QTWTF::pageheap_memory>) at /usr/src/debug/qtscript-opensource-src-5.5.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #2 0x00007fb769cc14d9 in QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) (context=<optimized out>) at /usr/src/debug/qtscript-opensource-src-5.5.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #3 0x00007fb760c3a555 in start_thread (arg=0x7fb739480700) at pthread_create.c:333 #4 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 4 (Thread 0x7fb6b3fff700 (LWP 2022)): #0 0x00007fb75d13de50 in g_source_iter_next (iter=iter@entry=0x7fb6b3ffeaf0, source=source@entry=0x7fb6b3ffeae8) at gmain.c:926 #1 0x00007fb75d14072a in g_main_context_check (context=context@entry=0x7fb6ac000990, max_priority=2147483647, fds=fds@entry=0x7fb6ac003070, n_fds=n_fds@entry=1) at gmain.c:3629 #2 0x00007fb75d140d60 in g_main_context_iterate (context=context@entry=0x7fb6ac000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3805 #3 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb6ac000990, may_block=may_block@entry=1) at gmain.c:3869 #4 0x00007fb762dccdab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fb6ac0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420 #5 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fb6b3ffeca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007fb762b905a4 in QThread::exec() (this=this@entry=0x2508d20) at thread/qthread.cpp:503 #7 0x00007fb766e87245 in QQmlThreadPrivate::run() (this=0x2508d20) at /usr/src/debug/qtdeclarative-opensource-src-5.5.0/src/qml/qml/ftw/qqmlthread.cpp:141 #8 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x2508d20) at thread/qthread_unix.cpp:331 #9 0x00007fb760c3a555 in start_thread (arg=0x7fb6b3fff700) at pthread_create.c:333 #10 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 3 (Thread 0x7fb6ab91a700 (LWP 2085)): #0 0x00007fb75d13dde0 in g_source_iter_next (iter=iter@entry=0x7fb6ab919aa0, source=source@entry=0x7fb6ab919a98) at gmain.c:894 #1 0x00007fb75d1402fb in g_main_context_prepare (context=context@entry=0x7fb6a4000990, priority=priority@entry=0x7fb6ab919b20) at gmain.c:3388 #2 0x00007fb75d140ceb in g_main_context_iterate (context=context@entry=0x7fb6a4000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3788 #3 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb6a4000990, may_block=may_block@entry=1) at gmain.c:3869 #4 0x00007fb762dccdab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fb6a40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420 #5 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fb6ab919c50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007fb762b905a4 in QThread::exec() (this=this@entry=0x2895350) at thread/qthread.cpp:503 #7 0x00007fb767a2a616 in QQuickPixmapReader::run() (this=0x2895350) at /usr/src/debug/qtdeclarative-opensource-src-5.5.0/src/quick/util/qquickpixmapcache.cpp:754 #8 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x2895350) at thread/qthread_unix.cpp:331 #9 0x00007fb760c3a555 in start_thread (arg=0x7fb6ab91a700) at pthread_create.c:333 #10 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 2 (Thread 0x7fb69f37f700 (LWP 2098)): #0 0x00007fb761f892fd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fb75d140dbc in g_main_context_iterate (priority=2147483647, n_fds=1, fds=0x7fb6980048c0, timeout=<optimized out>, context=0x7fb698000990) at gmain.c:4103 #2 0x00007fb75d140dbc in g_main_context_iterate (context=context@entry=0x7fb698000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3803 #3 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb698000990, may_block=may_block@entry=1) at gmain.c:3869 #4 0x00007fb762dccdab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fb6980008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420 #5 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fb69f37ec80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007fb762b905a4 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:503 #7 0x00007fb6a0fce397 in KCupsConnection::run() () at /lib64/libkcupslib.so #8 0x00007fb762b9554e in QThreadPrivate::start(void*) (arg=0x49ba850) at thread/qthread_unix.cpp:331 #9 0x00007fb760c3a555 in start_thread (arg=0x7fb69f37f700) at pthread_create.c:333 #10 0x00007fb761f94b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 1 (Thread 0x7fb76a59e900 (LWP 1810)): [KCrash Handler] #6 0x00007fb74c5548ff in QXcbWindow::handleClientMessageEvent(xcb_client_message_event_t const*) (this=0x2799c00, event=0x7fb7440034c0) at qxcbwindow.cpp:1940 #7 0x00007fb74c53fb0b in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x17ea930, event=event@entry=0x7fb7440034c0) at qxcbconnection.cpp:1043 #8 0x00007fb74c540033 in QXcbConnection::processXcbEvents() (this=0x17ea930) at qxcbconnection.cpp:1487 #9 0x00007fb762da6021 in QObject::event(QEvent*) (this=0x17ea930, e=<optimized out>) at kernel/qobject.cpp:1246 #10 0x00007fb76432c4ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x17e00b0, receiver=receiver@entry=0x17ea930, e=e@entry=0x7fb744005790) at kernel/qapplication.cpp:3717 #11 0x00007fb764331976 in QApplication::notify(QObject*, QEvent*) (this=0x7ffd80d4d750, receiver=0x17ea930, e=0x7fb744005790) at kernel/qapplication.cpp:3500 #12 0x00007fb762d7661b in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd80d4d750, receiver=0x17ea930, event=event@entry=0x7fb744005790) at kernel/qcoreapplication.cpp:965 #13 0x00007fb762d78a16 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (event=0x7fb744005790, receiver=<optimized out>) at kernel/qcoreapplication.h:224 #14 0x00007fb762d78a16 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x17d64c0) at kernel/qcoreapplication.cpp:1593 #15 0x00007fb762d78ef8 in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1451 #16 0x00007fb762dcc983 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1826250) at kernel/qeventdispatcher_glib.cpp:271 #17 0x00007fb75d140a8a in g_main_context_dispatch (context=0x7fb7440016f0) at gmain.c:3122 #18 0x00007fb75d140a8a in g_main_context_dispatch (context=context@entry=0x7fb7440016f0) at gmain.c:3737 #19 0x00007fb75d140e20 in g_main_context_iterate (context=context@entry=0x7fb7440016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808 #20 0x00007fb75d140ecc in g_main_context_iteration (context=0x7fb7440016f0, may_block=may_block@entry=1) at gmain.c:3869 #21 0x00007fb762dccd8f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x18262d0, flags=...) at kernel/qeventdispatcher_glib.cpp:418 #22 0x00007fb762d73daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd80d4d5d0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #23 0x00007fb762d7be6c in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1229 #24 0x00007fb7632aa24c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1528 #25 0x00007fb7643288e5 in QApplication::exec() () at kernel/qapplication.cpp:2977 #26 0x00000000004302c3 in main(int, char**) (argc=2, argv=<optimized out>) at ../../shell/main.cpp:176 Possible duplicates by query: bug 354460, bug 354203, bug 353603, bug 353563. Reported using DrKonqi
*** Bug 354203 has been marked as a duplicate of this bug. ***
Thanks, I've been hoping to get one of these crashes with a line number in Qt. xcb_translate_coordinates_cookie_t cookie = xcb_translate_coordinates(xcb_connection(), xcb_window(), m_screen->root(), pos.x() * dpr, pos.y() * dpr); xcb_translate_coordinates_reply_t *reply = xcb_translate_coordinates_reply(xcb_connection(), cookie, NULL); <---- here if (reply) { ret.setX(reply->dst_x / dpr); ret.setY(reply->dst_y / dpr); free(reply); }
wait, that doesn't match up at all.... Fedora must have a patched Qt.
If it's any help.. here are currently installed qt5 packages with version numbers: [mcfish@... ~]$ rpm -qa | grep -i qt5- | sort dbusmenu-qt5-0.9.3-0.10.20150604.fc22.x86_64 dbusmenu-qt5-debuginfo-0.9.3-0.3.20140604bzr.fc22.x86_64 libkscreen-qt5-5.4.2-1.fc22.x86_64 libkscreen-qt5-debuginfo-5.4.2-1.fc22.x86_64 PackageKit-Qt5-0.9.5-1.fc22.x86_64 phonon-qt5-4.8.3-3.fc22.x86_64 phonon-qt5-backend-gstreamer-4.8.2-3.fc22.x86_64 polkit-qt5-1-0.112.0-3.fc22.x86_64 polkit-qt5-1-debuginfo-0.103.0-4.20130415gitbac771e.fc22.x86_64 poppler-qt5-0.30.0-3.fc22.x86_64 qca-qt5-2.1.0-14.fc22.x86_64 qt5-qtbase-5.5.0-18.fc22.x86_64 qt5-qtbase-common-5.5.0-18.fc22.noarch qt5-qtbase-debuginfo-5.5.0-18.fc22.x86_64 qt5-qtbase-gui-5.5.0-18.fc22.x86_64 qt5-qtdeclarative-5.5.0-3.fc22.x86_64 qt5-qtdeclarative-debuginfo-5.5.0-3.fc22.x86_64 qt5-qtgraphicaleffects-5.5.0-2.fc22.x86_64 qt5-qtlocation-5.5.0-3.fc22.x86_64 qt5-qtlocation-debuginfo-5.5.0-3.fc22.x86_64 qt5-qtmultimedia-5.5.0-3.fc22.x86_64 qt5-qtquickcontrols-5.5.0-3.fc22.x86_64 qt5-qtscript-5.5.0-3.fc22.x86_64 qt5-qtscript-debuginfo-5.5.0-3.fc22.x86_64 qt5-qtsensors-5.5.0-3.fc22.x86_64 qt5-qtsensors-debuginfo-5.5.0-3.fc22.x86_64 qt5-qtsvg-5.5.0-3.fc22.x86_64 qt5-qtsvg-debuginfo-5.5.0-3.fc22.x86_64 qt5-qttools-5.5.0-4.fc22.x86_64 qt5-qttools-common-5.5.0-4.fc22.noarch qt5-qttools-debuginfo-5.5.0-4.fc22.x86_64 qt5-qttools-libs-designer-5.5.0-4.fc22.x86_64 qt5-qtwebkit-5.5.0-4.fc22.x86_64 qt5-qtwebkit-debuginfo-5.5.0-4.fc22.x86_64 qt5-qtx11extras-5.5.0-2.fc22.x86_64 qt5-qtx11extras-debuginfo-5.5.0-2.fc22.x86_64 qt5-qtxmlpatterns-5.5.0-3.fc22.x86_64 qt5-qtxmlpatterns-debuginfo-5.5.0-3.fc22.x86_64
If this bug is the same as #354203, I can add information about another condition that triggers this crash. I am running a gentoo box with plasma 5.4.2 and QT 5.5.1. I have a dual-screen setup consisting of integrated display (tablet/laptop) and an external monitor (main screen) connected via display link. As soon as the external monitor falls asleep, plasmashell shows some weird behaviour, such that the widgets and the background is only shown on the internal display, while the task bar is still located on the external screen (black background). When the external monitor sleeps for second time I can observe the behaviour detailed in #354203 that is a crash of plasmashell and kdeinit5. Then, after closing the crashreport dialogs I am thrown back to the login screen (the tty is visible for a short time) or plasma restarts. This is very annoying, as unsaved work can be lost easily. I think this issue is closely related to this bug: https://bugreports.qt.io/browse/QTBUG-42985. I could not observe this behaviour with QT5.4.2. Unfortunately, some dependencies require QT>=5.5. Regards, Alex
So, I did launch rpmbuild for the fedora qtbase package, and this is the problematic part (in handleClientMessageEvent): ... else if (event->data.data32[0] == atom(QXcbAtom::WM_TAKE_FOCUS)) { connection()->setTime(event->data.data32[1]); relayFocusToModalWindow(); return; } else if (event->data.data32[0] == atom(QXcbAtom::_NET_WM_PING)) { if (event->window == xcbScreen()->root()) <--------- HERE (line 1940, 5.5 git branch: 1942) return; xcb_client_message_event_t reply = *event; ... In the qtbase project, 5.5 branch on git, this is line 1942 in qxcbwindow.cpp. I assume that xcbScreen() is null at this point and causes the crash. I will inspect this evening. Conversely to my previous suspicion, this is not covered in https://bugreports.qt.io/browse/QTBUG-42985. Regards, Alex
Thanks I forgot to update this bug report, but I your thinking matches what I found. Other message handling has null xcbScreen() checks, so it shouldn't be too controversial to get in. Ideally shouldn't just ignore a ping, as the WM might then just close us anyway. It'll be better than crashing though I suppose. For Qt 5.6 there's talk about windows always having a fake screen rather than a null pointer, so that also implicitly solves our problem.
Merged: https://codereview.qt-project.org/#/c/140447/
Thanks for the update! I have re-compiled qtbase/qtcore with the patch but I still get the same behaviour and a crash in the very same method. Yesterday evening, I struggeled with getting the debug symbols in for the binaries and libraries that are needed for a meaningful backtrace. I still need to solve an issues with sddm (https://github.com/sddm/sddm/issues/506) not starting due to debug symbols, but I guess I can provide more information this evening. Should this bug reopened (same problem) or shall I create a new one (different cause of the problem) once I have the "good" backtrace?
You may call me stupid. Gentoo packagers split qtbase in two ebuilds: qtcore and qtgui. I applied the patch to the wrong one. I can confirm now that the issue is solved.