Bug 343659

Summary: crash when open a new sheet when using Breeze Qt 4
Product: [Plasma] Breeze Reporter: lim <cfanmaoli>
Component: QStyleAssignee: Hugo Pereira Da Costa <hugo.pereira.da.costa>
Status: RESOLVED FIXED    
Severity: crash CC: abin.gecb, carlosmp1996, felixonmars, hugo.pereira.da.costa, jr, kratez, mecirt, rdieter, simonandric5, tmt_vdl, vamp898
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description lim 2015-02-01 14:48:26 UTC
Application: calligrasheets (2.8.6)
KDE Platform Version: 4.14.3
Qt Version: 4.8.6
Operating System: Linux 3.16.7-7-desktop x86_64
Distribution: "openSUSE 13.2 (Harlequin) (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:
Nothing, just open the program and want to open a new sheet, it crashed every time, so can't use the program at all.

The crash can be reproduced every time.

-- Backtrace:
Application: Calligra Sheets (calligrasheets), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f2e7f83e7c0 (LWP 26184))]

Thread 2 (Thread 0x7f2e5f94f700 (LWP 26185)):
#0  0x00007f2e7f1bb3cd in poll () at /lib64/libc.so.6
#1  0x00007f2e7a582be4 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f2e7a582cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f2e7d8ca0de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#4  0x00007f2e7d89be6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#5  0x00007f2e7d89c165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#6  0x00007f2e7d7990bf in QThread::exec() () at /usr/lib64/libQtCore.so.4
#7  0x00007f2e7d87d783 in  () at /usr/lib64/libQtCore.so.4
#8  0x00007f2e7d79b79f in  () at /usr/lib64/libQtCore.so.4
#9  0x00007f2e7a84d0a4 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f2e7f1c37fd in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f2e7f83e7c0 (LWP 26184)):
[KCrash Handler]
#5  0x00007f2e7e2e8700 in QWidget::mapFromParent(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#6  0x00007f2e7e2e8753 in QWidget::mapFrom(QWidget*, QPoint const&) const () at /usr/lib64/libQtGui.so.4
#7  0x00007f2e6f522f42 in  () at /usr/lib64/kde4/plugins/styles/breeze.so
#8  0x00007f2e7d89d416 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#9  0x00007f2e7e2ab74c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#10 0x00007f2e7e2b1dea in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#11 0x00007f2e7edef5c7 in KoApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkomain.so.13
#12 0x00007f2e7d89d2ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#13 0x00007f2e7e2b15e3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib64/libQtGui.so.4
#14 0x00007f2e7e322c9b in  () at /usr/lib64/libQtGui.so.4
#15 0x00007f2e7e32170c in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib64/libQtGui.so.4
#16 0x00007f2e7e3485c2 in  () at /usr/lib64/libQtGui.so.4
#17 0x00007f2e7a582a04 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#18 0x00007f2e7a582c48 in  () at /usr/lib64/libglib-2.0.so.0
#19 0x00007f2e7a582cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#20 0x00007f2e7d8ca0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#21 0x00007f2e7e348676 in  () at /usr/lib64/libQtGui.so.4
#22 0x00007f2e7d89be6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#23 0x00007f2e7d89c165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#24 0x00007f2e7d8a15b9 in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#25 0x00007f2e7f4887b5 in kdemain () at /usr/lib64/libkdeinit4_calligrasheets.so
#26 0x00007f2e7f0ffb05 in __libc_start_main () at /lib64/libc.so.6
#27 0x000000000040075e in _start ()

Reported using DrKonqi
Comment 1 Carlos 2015-02-26 23:25:34 UTC
It also happens to me, using Archlinux and Calligra Sheets 2.8.7. It always crashes when I try to open the default template. Calligra Words works just fine.
Comment 2 Felix Yan 2015-02-27 09:52:36 UTC
Confirmed on Arch Linux x86_64 with latest Calligra Sheets 2.9.0.
Comment 3 Jonathan Riddell 2015-02-27 13:37:54 UTC
Backtrace with debugging symbols from breeze:

Application: Calligra Sheets (calligrasheets), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[KCrash Handler]
#6  QWidget::mapFromParent (this=this@entry=0x0, pos=...) at kernel/qwidget.cpp:4325
#7  0x00007fe2a4adfb03 in QWidget::mapFrom (this=<optimized out>, parent=0x2dfd680, pos=...) at kernel/qwidget.cpp:4292
#8  0x00007fe295d4e0b2 in Breeze::Style::eventFilterScrollArea (this=0x0, widget=0x2dfd680, event=0x7fff84ac8d10) at ../../kstyle/breezestyle.cpp:1025
#9  0x00007fe2a4093776 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x2429ce0, receiver=receiver@entry=0x2dfd680, event=event@entry=0x7fff84ac8d10) at kernel/qcoreapplication.cpp:1065
#10 0x00007fe2a4a9f99c in QApplicationPrivate::notify_helper (this=this@entry=0x2429ce0, receiver=receiver@entry=0x2dfd680, e=e@entry=0x7fff84ac8d10) at kernel/qapplication.cpp:4566
#11 0x00007fe2a4aa663f in QApplication::notify (this=<optimized out>, receiver=receiver@entry=0x2c14110, e=e@entry=0x7fff84ac8ff0) at kernel/qapplication.cpp:4113
#12 0x00007fe2a561afe7 in KoApplication::notify (this=<optimized out>, receiver=0x2c14110, event=0x7fff84ac8ff0) at /mnt/ubuntu/calligra/calligra-2.9.0/libs/main/KoApplication.cpp:623
#13 0x00007fe2a409360d in QCoreApplication::notifyInternal (this=0x7fff84ac9870, receiver=receiver@entry=0x2c14110, event=event@entry=0x7fff84ac8ff0) at kernel/qcoreapplication.cpp:955
#14 0x00007fe2a4aa5c9f in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#15 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x2c14110, event=event@entry=0x7fff84ac8ff0, alienWidget=alienWidget@entry=0x2c14110, nativeWidget=nativeWidget@entry=0x2dfd680, buttonDown=buttonDown@entry=0x7fe2a55cb578 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3178
#16 0x00007fe2a4b1f9d2 in QETWidget::translateMouseEvent (this=this@entry=0x2dfd680, event=event@entry=0x7fff84ac9220) at kernel/qapplication_x11.cpp:4632
#17 0x00007fe2a4b1e84a in QApplication::x11ProcessEvent (this=0x7fff84ac9870, event=event@entry=0x7fff84ac9350) at kernel/qapplication_x11.cpp:3827
#18 0x00007fe2a4b47bc2 in x11EventSourceDispatch (s=0x242b530, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#19 0x00007fe2a0959c3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fe2a0959f20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007fe2a0959fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fe2a40c2c7e in QEventDispatcherGlib::processEvents (this=0x2429ca0, flags=...) at kernel/qeventdispatcher_glib.cpp:450
#23 0x00007fe2a4b47c86 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#24 0x00007fe2a4092161 in QEventLoop::processEvents (this=this@entry=0x7fff84ac9730, flags=...) at kernel/qeventloop.cpp:149
#25 0x00007fe2a40924c5 in QEventLoop::exec (this=this@entry=0x7fff84ac9730, flags=...) at kernel/qeventloop.cpp:204
#26 0x00007fe2a4097f49 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
#27 0x00007fe2a4a9dc1c in QApplication::exec () at kernel/qapplication.cpp:3828
#28 0x00007fe2a5c99762 in kdemain (argc=1, argv=0x7fff84ac99b8) at /mnt/ubuntu/calligra/calligra-2.9.0/sheets/part/Main.cpp:44
#29 0x00007fe2a58f3ec5 in __libc_start_main (main=0x4006e0 <main(int, char**)>, argc=1, argv=0x7fff84ac99b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff84ac99a8) at libc-start.c:287
#30 0x000000000040070e in _start ()
Comment 4 Jonathan Riddell 2015-02-27 13:38:14 UTC
Confirmed on Kubuntu with Plasma 5.2.1 and Calligra 2.9.0
Comment 5 Tomas Mecir 2015-02-27 22:16:06 UTC
This looks like a breeze issue, re-assigning. From investigating, it looks like breeze's eventFilterScrollArea attempts to access scrollbars on QAbstractScrollArea-derived widgets, even if these scrollbars do not exist (sheets calls setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);).
Comment 6 Hugo Pereira Da Costa 2015-03-01 17:12:37 UTC
Interesting. The code do check for the scrollbar validity (non nullptr) few lines above the one incriminated. I guess I'll check for scrollbar policy directly.
Comment 7 Hugo Pereira Da Costa 2015-03-01 17:20:17 UTC
Git commit 759ff9bf1ba38a47214849bc0a80cfbc7333c3a9 by Hugo Pereira Da Costa.
Committed on 01/03/2015 at 17:19.
Pushed by hpereiradacosta into branch 'Plasma/5.2'.

Check scrollbar policy before forwarding events

M  +3    -3    kstyle/breezestyle.cpp

http://commits.kde.org/breeze/759ff9bf1ba38a47214849bc0a80cfbc7333c3a9
Comment 8 Hugo Pereira Da Costa 2015-03-01 17:20:18 UTC
Git commit e5830632fc7fea9382efa640338ede7178a674f3 by Hugo Pereira Da Costa.
Committed on 01/03/2015 at 17:19.
Pushed by hpereiradacosta into branch 'master'.

Check scrollbar policy before forwarding events

M  +8    -7    kstyle/breezestyle.cpp

http://commits.kde.org/breeze/e5830632fc7fea9382efa640338ede7178a674f3
Comment 9 Hugo Pereira Da Costa 2015-03-01 17:20:44 UTC
Fixed.
Thanks for reporting (and forwarding)
Comment 10 Tomas Mecir 2015-03-04 11:12:48 UTC
*** Bug 344808 has been marked as a duplicate of this bug. ***
Comment 11 Tomas Mecir 2015-03-11 09:08:45 UTC
*** Bug 344310 has been marked as a duplicate of this bug. ***
Comment 12 Tomas Mecir 2015-03-11 09:10:18 UTC
*** Bug 345040 has been marked as a duplicate of this bug. ***
Comment 13 Christoph Feck 2015-03-28 16:18:21 UTC
*** Bug 345616 has been marked as a duplicate of this bug. ***