Bug 364388 - kwin crash on alt+tab
Summary: kwin crash on alt+tab
Status: RESOLVED WAITINGFORINFO
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.6.4
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-06-16 16:34 UTC by Martin Bednar
Modified: 2016-06-17 10:06 UTC (History)
1 user (show)

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


Attachments
kwin supportinformation (3.47 KB, text/plain)
2016-06-16 16:35 UTC, Martin Bednar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Bednar 2016-06-16 16:34:36 UTC
Application: kwin_x11 (5.6.4)
 (Compiled from sources)
Qt Version: 5.5.1
Frameworks Version: 5.22.0
Operating System: Linux 4.6.0-gentoo x86_64
Distribution: "Gentoo Base System release 2.2"

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

Two screens, kodi playing fullscreen on one, browser on other.
Focus on browser, press alt+tab to switch window.
Kwin crash.

DrKonqui found quite a few possible dupes, but I'm not sure if it actually is one. (those I quickly browsed mentioned a fix in qt 5.5, which I have)

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_x11), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f1c39cf7840 (LWP 5958))]

Thread 7 (Thread 0x7f1c22e2d700 (LWP 5961)):
#0  0x00007f1c395ed57d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f1c37a9ca92 in poll (__timeout=-1, __nfds=1, __fds=0x7f1c22e2cc80) at /usr/include/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x24a2ab0, cond=cond@entry=0x24a2af0, vector=vector@entry=0x0, count=count@entry=0x0) at /var/tmp/portage/x11-libs/libxcb-1.11.1/work/libxcb-1.11.1/src/xcb_conn.c:459
#3  0x00007f1c37a9e67f in xcb_wait_for_event (c=0x24a2ab0) at /var/tmp/portage/x11-libs/libxcb-1.11.1/work/libxcb-1.11.1/src/xcb_in.c:693
#4  0x00007f1c236d1719 in QXcbEventReader::run (this=0x24b5ae0) at qxcbconnection.cpp:1229
#5  0x00007f1c37d51b63 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f1c398af5c4 in start_thread (arg=0x7f1c22e2d700) at pthread_create.c:334
#7  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f1c1bec1700 (LWP 5969)):
#0  pthread_cond_wait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f1c21a3e293 in radeon_drm_cs_emit_ioctl () from /usr/lib64/dri/r600_dri.so
#2  0x00007f1c21a3dab7 in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so
#3  0x00007f1c398af5c4 in start_thread (arg=0x7f1c1bec1700) at pthread_create.c:334
#4  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f1c1938d700 (LWP 5975)):
#0  pthread_cond_timedwait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007f1c37d52118 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQt5Core.so.5
#2  0x00007f1c37d4f197 in QThreadPoolThread::run() () from /usr/lib64/libQt5Core.so.5
#3  0x00007f1c37d51b63 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f1c398af5c4 in start_thread (arg=0x7f1c1938d700) at pthread_create.c:334
#5  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f1c13fff700 (LWP 5976)):
#0  0x00007f1c395ef203 in select () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f1c37f34ad9 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) () from /usr/lib64/libQt5Core.so.5
#2  0x00007f1c37f36033 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timespec*) () from /usr/lib64/libQt5Core.so.5
#3  0x00007f1c37f3644b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f1c37eed75b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f1c37d4d51a in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f1c3238f548 in QQmlThreadPrivate::run (this=0x270c4d0) at qml/ftw/qqmlthread.cpp:141
#7  0x00007f1c37d51b63 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
#8  0x00007f1c398af5c4 in start_thread (arg=0x7f1c13fff700) at pthread_create.c:334
#9  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f1c12ffe700 (LWP 5977)):
#0  pthread_cond_timedwait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007f1c37d52118 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQt5Core.so.5
#2  0x00007f1c37d4f197 in QThreadPoolThread::run() () from /usr/lib64/libQt5Core.so.5
#3  0x00007f1c37d51b63 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f1c398af5c4 in start_thread (arg=0x7f1c12ffe700) at pthread_create.c:334
#5  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f1c127fd700 (LWP 5978)):
#0  pthread_cond_wait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f1c36e6911b in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f1c36f50c60 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007f1c36e69149 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007f1c398af5c4 in start_thread (arg=0x7f1c127fd700) at pthread_create.c:334
#4  0x00007f1c395f639d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f1c39cf7840 (LWP 5958)):
[KCrash Handler]
#6  0x00007f1c39541ff7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#7  0x00007f1c3954335a in __GI_abort () at abort.c:89
#8  0x00007f1c37d4215e in QMessageLogger::fatal(char const*, ...) const () from /usr/lib64/libQt5Core.so.5
#9  0x00007f1c236e7992 in QXcbWindow::create (this=this@entry=0x2e27ff0) at qxcbwindow.cpp:462
#10 0x00007f1c39ede409 in QXcbEglWindow::create (this=0x2e27ff0) at qxcbeglwindow.cpp:83
#11 0x00007f1c236d2f72 in QXcbIntegration::createPlatformWindow (this=<optimized out>, window=<optimized out>) at qxcbintegration.cpp:201
#12 0x00007f1c3821570b in QWindowPrivate::create (this=0x2d66220, recursive=recursive@entry=false) at kernel/qwindow.cpp:392
#13 0x00007f1c3821580b in QWindow::create (this=this@entry=0x2d64b50) at kernel/qwindow.cpp:548
#14 0x00007f1c38215898 in QWindow::winId (this=0x2d64b50) at kernel/qwindow.cpp:567
#15 0x00007f1c11765cd6 in PlasmaQuick::DialogPrivate::updateTheme() () from /usr/lib64/libKF5PlasmaQuick.so.5
#16 0x00007f1c11767b67 in PlasmaQuick::Dialog::componentComplete() () from /usr/lib64/libKF5PlasmaQuick.so.5
#17 0x00007f1c323857db in QQmlObjectCreator::finalize (this=0x2634a70, interrupt=...) at qml/qqmlobjectcreator.cpp:1207
#18 0x00007f1c323149eb in QQmlComponentPrivate::complete (enginePriv=0x270c270, state=state@entry=0x2866950) at qml/qqmlcomponent.cpp:928
#19 0x00007f1c32314aa7 in QQmlComponentPrivate::completeCreate (this=0x28668b0) at qml/qqmlcomponent.cpp:964
#20 0x00007f1c32314930 in QQmlComponent::create (this=0x26dcc00, context=0x25edc90) at qml/qqmlcomponent.cpp:791
#21 0x00007f1c3924cff7 in KWin::TabBox::TabBoxHandlerPrivate::createSwitcherItem(bool) () from /usr/lib64/libkwin.so.5
#22 0x00007f1c3924e47c in KWin::TabBox::TabBoxHandlerPrivate::show() () from /usr/lib64/libkwin.so.5
#23 0x00007f1c3924e6d9 in KWin::TabBox::TabBoxHandler::show() () from /usr/lib64/libkwin.so.5
#24 0x00007f1c392630dd in KWin::TabBox::TabBox::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib64/libkwin.so.5
#25 0x00007f1c37f14be1 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#26 0x00007f1c37f20e02 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib64/libQt5Core.so.5
#27 0x00007f1c37f15b14 in QObject::event(QEvent*) () from /usr/lib64/libQt5Core.so.5
#28 0x00007f1c386cf8fc in QApplicationPrivate::notify_helper (this=this@entry=0x249aa30, receiver=receiver@entry=0x2561b68, e=e@entry=0x7ffdf19420b0) at kernel/qapplication.cpp:3716
#29 0x00007f1c386d4748 in QApplication::notify (this=0x7ffdf1942300, receiver=0x2561b68, e=0x7ffdf19420b0) at kernel/qapplication.cpp:3499
#30 0x00007f1c37eeeb0d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#31 0x00007f1c37f37b7d in QTimerInfoList::activateTimers() () from /usr/lib64/libQt5Core.so.5
#32 0x00007f1c37f364d8 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#33 0x00007f1c237315fd in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#34 0x00007f1c37eed75b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#35 0x00007f1c37ef4586 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
#36 0x00007f1c39ac8773 in kdemain () from /usr/lib64/libkdeinit5_kwin_x11.so
#37 0x00007f1c3952f6a5 in __libc_start_main (main=0x4007d0 <main>, argc=3, argv=0x7ffdf1942478, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdf1942468) at libc-start.c:289
#38 0x0000000000400809 in _start ()

Possible duplicates by query: bug 362635, bug 362567, bug 362228, bug 360548, bug 355457.

Reported using DrKonqi
Comment 1 Martin Bednar 2016-06-16 16:35:18 UTC
Created attachment 99534 [details]
kwin supportinformation
Comment 2 Thomas Lübking 2016-06-16 19:00:46 UTC
Welcome to the most epic bug of Qt 5.5, update to 5.6.1 asap - every client code might randomly crash.

*** This bug has been marked as a duplicate of bug 341497 ***
Comment 3 Martin Flöser 2016-06-17 06:05:01 UTC
Oh I think this one is actually a different case.

> #10 0x00007f1c39ede409 in QXcbEglWindow::create (this=0x2e27ff0) at qxcbeglwindow.cpp:83

Qt is using EGL instead of GLX and that probably doesn't work. Why did you compile Qt to prefer EGL?
Comment 4 Thomas Lübking 2016-06-17 07:20:01 UTC
bug #353606 suggests it's due to OpenGL being broken entirely (what would explain the disabled compositor) and probably the reason why (iff) the "wrong" GL api is used.
Comment 5 Martin Bednar 2016-06-17 09:34:06 UTC
(In reply to Martin Gräßlin from comment #3)
> Qt is using EGL instead of GLX and that probably doesn't work. Why did you
> compile Qt to prefer EGL?

TBH I don't remember actively making that choice, my combination of use flags kind of forced me into it.

Right now I'm upgrading to qt 5.6.1 (with the same useflags) and I'll report back when done.
Comment 6 Thomas Lübking 2016-06-17 09:44:09 UTC
please check the output of "glxinfo" - if the other bug is right, your gl installation is broken. qtquick then simply doesn't work.
Comment 7 Martin Bednar 2016-06-17 10:06:44 UTC
(In reply to Thomas Lübking from comment #6)
> please check the output of "glxinfo" - if the other bug is right, your gl
> installation is broken. qtquick then simply doesn't work.

GL works ok : OpenGL renderer string: Gallium 0.4 on AMD CAYMAN (DRM 2.43.0, LLVM 3.8.0)
Kodi is running right now, and warzone2100 starts.

This is weird : compositing gets disabled the moment I set kodi to fullscreen... hadn't noticed that before.