[Bug 1290514] [NEW] LibreOffice KDE4 backend crashes in Qt4 recursive paint events
Jan-Marek Glogowski
1290514 at bugs.launchpad.net
Mon Mar 10 19:29:41 UTC 2014
Public bug reported:
Distribution: Kubuntu 12.04
Package: qt4-x11 4:4.8.1-0ubuntu4.6
Program: LibreOffice 4.3 (current master build).
This bugs origin is a crash when using KDE4 native file picker dialogs
from within LibreOffice [1].
There are several similar ones in all distributions.
In the backtrace you can see, that LO calls the Qt event dispatcher,
which processes a draw event, which - at some point - waits for the
clipboard using the Qt / LO event loop, which processes another (now
nested) draw event -> crash.
This happens, because LO sets
qApp->clipboard()->setProperty( "useEventLoopWhenWaiting", true );
because the X11 event processing in clipboardWaitForEvents would interfere with the LO X11 handling / locking.
QX11Data::clipboardWaitForEvents (gui/kernel/qclipboard_x11.cpp:520)
actually installs the correct clipboard event filter in the qapp, which
should just handle Clipboard events.
But actually the Qt internal glib event loop doesn't honor the
QEventLoop::ExcludeSocketNotifiers (see
src/corelib/kernel/qeventdispatcher_glib.cpp).
Originally I opened [2], because I didn't want to deep dive into the Qt
codebase. Since I didn't get any usable replies and all my implemented
workarounds in LibreOffice didn't work I tried to understand the
backtrace from [2] and realized the missing
QEventLoop::ExcludeSocketNotifiers handling in the Qt glib code. I
opened [3] and pushed a patch for Qt review as [4].
[1] https://bugs.freedesktop.org/show_bug.cgi?id=69002
[2] https://bugreports.qt-project.org/browse/QTBUG-34614
[3] https://bugreports.qt-project.org/browse/QTBUG-37380
[4] https://codereview.qt-project.org/#change,80528
** Affects: qt4-x11 (Ubuntu)
Importance: Undecided
Status: Triaged
** Affects: qt4-x11 (Ubuntu Precise)
Importance: Undecided
Status: New
** Affects: qt4-x11 (Ubuntu Saucy)
Importance: Undecided
Status: New
** Affects: qt4-x11 (Ubuntu Trusty)
Importance: Undecided
Status: Triaged
** Tags: kubuntu
** Attachment added: "LibreOffice backtrace of the crash."
https://bugs.launchpad.net/bugs/1290514/+attachment/4017137/+files/bt-repaint-error.txt
--
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to qt4-x11 in Ubuntu.
https://bugs.launchpad.net/bugs/1290514
Title:
LibreOffice KDE4 backend crashes in Qt4 recursive paint events
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1290514/+subscriptions
More information about the kubuntu-bugs
mailing list