FS#43757 - [konsole] resizing window hangs Konsole

Attached to Project: Arch Linux
Opened by Steven Noonan (neunon) - Monday, 09 February 2015, 18:33 GMT
Last edited by Laurent Carlier (lordheavy) - Wednesday, 11 February 2015, 21:48 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Felix Yan (felixonmars)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

I get occasional hangs with Konsole, which appear to correlate to window resize events. If I let the window sit for a while before doing anything with it, it seems to be fine. But if I try to resize the window within the first few seconds of opening Konsole, it will hang. Right now it's extremely reproducible on this machine, so I'm trying to build all the supporting libraries with debug symbols so I can get a reasonable stack trace.

Here's the stack trace of a hung Konsole as it stands right now (building Qt with symbols at the moment, but konsole and kconfig have been built with debug symbols):

(gdb) thread apply all bt

Thread 3 (Thread 0x7f650281f700 (LWP 9146)):
#0 0x00007f6516fc44ed in poll () from /usr/lib/libc.so.6
#1 0x00007f650f7bb9f2 in ?? () from /usr/lib/libxcb.so.1
#2 0x00007f650f7bd56f in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3 0x00007f6503b143f9 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#4 0x00007f65138a45ee in ?? () from /usr/lib/libQt5Core.so.5
#5 0x00007f650f191374 in start_thread () from /usr/lib/libpthread.so.0
#6 0x00007f6516fcd27d in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f64fa278700 (LWP 9147)):
#0 0x00007f6516fc61b3 in select () from /usr/lib/libc.so.6
#1 0x00007f6513a21b31 in ?? () from /usr/lib/libQt5Core.so.5
#2 0x00007f65138a45ee in ?? () from /usr/lib/libQt5Core.so.5
#3 0x00007f650f191374 in start_thread () from /usr/lib/libpthread.so.0
#4 0x00007f6516fcd27d in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f6503d69840 (LWP 9145)):
#0 0x00007f6516f9cead in nanosleep () from /usr/lib/libc.so.6
#1 0x00007f65139591ad in ?? () from /usr/lib/libQt5Core.so.5
#2 0x00007f65138a39d8 in QThread::msleep(unsigned long) () from /usr/lib/libQt5Core.so.5
#3 0x00007f65139b5340 in QLockFile::tryLock(int) () from /usr/lib/libQt5Core.so.5
#4 0x00007f6514c42209 in KConfigIniBackend::lock (this=0x1242240) at /home/snoonan/kconfig/src/kconfig-5.6.0/src/core/kconfigini.cpp:634
#5 0x00007f6514c22c56 in lockLocal (this=0x12419d0) at /home/snoonan/kconfig/src/kconfig-5.6.0/src/core/kconfig.cpp:104
#6 KConfig::sync (this=<optimized out>) at /home/snoonan/kconfig/src/kconfig-5.6.0/src/core/kconfig.cpp:415
#7 0x00007f6516240a1e in KMainWindow::saveAutoSaveSettings() () from /usr/lib/libKF5XmlGui.so.5
#8 0x00007f6513abe339 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#9 0x00007f6513acc0a8 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt5Core.so.5
#10 0x00007f6513abf473 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#11 0x00007f651436cd8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007f6514372370 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007f6513a8ea9b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#14 0x00007f6513ae4f6d in QTimerInfoList::activateTimers() () from /usr/lib/libQt5Core.so.5
#15 0x00007f6513ae53b1 in ?? () from /usr/lib/libQt5Core.so.5
#16 0x00007f650ea5ea0d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#17 0x00007f650ea5ecf8 in ?? () from /usr/lib/libglib-2.0.so.0
#18 0x00007f650ea5edac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#19 0x00007f6513ae6077 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#20 0x00007f6513a8c532 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#21 0x00007f6513a93f0c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#22 0x00007f65172aad39 in kdemain (argc=1, argv=0x7fff622200a8) at /home/snoonan/konsole/src/konsole-14.12.2/src/main.cpp:90
#23 0x00007f6516f05800 in __libc_start_main () from /usr/lib/libc.so.6
#24 0x0000000000400789 in _start ()

My suspicion is that the problem is with the held lock (QLockFIle) in thread 1 above.
This task depends upon

Closed by  Laurent Carlier (lordheavy)
Wednesday, 11 February 2015, 21:48 GMT
Reason for closing:  Fixed
Comment by Steven Noonan (neunon) - Monday, 09 February 2015, 18:47 GMT
Forgot to include package versions of libs in the backtrace;

kconfig 5.6.0-1
konsole 14.12.2-1
konsolepart4 4.14.3-5
qt5-base 5.4.0-3
Comment by Doug Newgard (Scimmia) - Monday, 09 February 2015, 21:02 GMT
Does this only happen in KDE or does it happen in other WMs as well?
Comment by Steven Noonan (neunon) - Monday, 09 February 2015, 21:27 GMT
I've only tried KDE.

(Also, I am at work now, so I can't run it with a debug build of Qt for a few hours... I'll post an update once I do.)
Comment by Steven Noonan (neunon) - Tuesday, 10 February 2015, 04:04 GMT
Interesting. Blew away .config and .kde4 and then the problem went away. Now I can't reproduce it. Requesting closure.

Loading...