Bug 366043 - KMyMoney crashes along with KNotify when searching for transactions
Summary: KMyMoney crashes along with KNotify when searching for transactions
Status: RESOLVED WORKSFORME
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: 4.7.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-07-24 17:06 UTC by Rob V
Modified: 2020-12-18 17:54 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
attachment-10802-0.html (1.77 KB, text/html)
2016-07-24 22:02 UTC, Rob V
Details
KNotify crash with Oxygen widgets (7.32 KB, text/plain)
2016-07-25 19:56 UTC, Rob V
Details
KMyMoney crash with Oxygen widgets (3.57 KB, text/plain)
2016-07-25 19:57 UTC, Rob V
Details
attachment-18530-0.html (1.48 KB, text/html)
2016-07-27 05:37 UTC, Rob V
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rob V 2016-07-24 17:06:38 UTC
Application: kmymoney (4.7.2)
KDE Platform Version: 4.14.22
Qt Version: 4.8.7
Operating System: Linux 4.6.4-301.fc24.x86_64 x86_64
Distribution: "Fedora release 24 (Twenty Four)"

-- Information about the crash:
I upgraded to Fedora 24 and opened KMyMoney. I was warned about a number of consistency errors (that I have never been warned about before). I used the top menu bar to open the Find Transaction window, and selected the date range for the transactions mentioned as inconsistent. KMyMoney and KNotify then simultaneously crashed.

The crash can be reproduced every time.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#6  0x00007f0ad7def5d0 in QHash<QPixmapCache::Key, QCache<QPixmapCache::Key, QPixmapCacheEntry>::Node>::findNode(QPixmapCache::Key const&, unsigned int*) const () at /lib64/libQtGui.so.4
#7  0x00007f0ad7ded8c5 in QPMCache::object(QString const&) const () at /lib64/libQtGui.so.4
#8  0x00007f0ad7deeb6c in QPixmapCache::find(QString const&, QPixmap*) () at /lib64/libQtGui.so.4
#9  0x00007f0ad7dbd31a in QPixmapIconEngine::pixmap(QSize const&, QIcon::Mode, QIcon::State) () at /lib64/libQtGui.so.4
#10 0x00007f0ad7dba839 in QIcon::pixmap(QSize const&, QIcon::Mode, QIcon::State) const () at /lib64/libQtGui.so.4
#11 0x00007f0abf85048c in Breeze::Style::drawToolButtonLabelControl(QStyleOption const*, QPainter*, QWidget const*) const () at /usr/lib64/kde4/plugins/styles/breeze.so
#12 0x00007f0abf84e265 in Breeze::Style::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const () at /usr/lib64/kde4/plugins/styles/breeze.so
#13 0x00007f0abf847f24 in Breeze::Style::drawToolButtonComplexControl(QStyleOptionComplex const*, QPainter*, QWidget const*) const () at /usr/lib64/kde4/plugins/styles/breeze.so
#14 0x00007f0abf84ec27 in Breeze::Style::drawComplexControl(QStyle::ComplexControl, QStyleOptionComplex const*, QPainter*, QWidget const*) const () at /usr/lib64/kde4/plugins/styles/breeze.so
#15 0x00007f0ad81a9234 in QToolButton::paintEvent(QPaintEvent*) () at /lib64/libQtGui.so.4
#16 0x00007f0ad7d66720 in QWidget::event(QEvent*) () at /lib64/libQtGui.so.4
#17 0x00007f0ad7d0fedc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#18 0x00007f0ad7d16ddc in QApplication::notify(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#19 0x00007f0ad8adc64a in KApplication::notify(QObject*, QEvent*) () at /lib64/libkdeui.so.5
#20 0x00007f0ad726ceed in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQtCore.so.4
#21 0x00007f0ad7d60d85 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQtGui.so.4
#22 0x00007f0ad7d61778 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQtGui.so.4
#23 0x00007f0ad7d60916 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQtGui.so.4
#24 0x00007f0ad7d61778 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQtGui.so.4
#25 0x00007f0ad7d60916 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQtGui.so.4
#26 0x00007f0ad7f2f7ba in QWidgetBackingStore::sync() () at /lib64/libQtGui.so.4
#27 0x00007f0ad7f2fb53 in QWidgetBackingStore::sync(QWidget*, QRegion const&) () at /lib64/libQtGui.so.4
#28 0x00007f0ad7d82518 in QETWidget::translatePaintEvent(_XEvent const*) () at /lib64/libQtGui.so.4
#29 0x00007f0ad7d8fbce in QApplication::x11ProcessEvent(_XEvent*) () at /lib64/libQtGui.so.4
#30 0x00007f0ad7db8419 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQtGui.so.4
#31 0x00007f0ad06a6703 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#32 0x00007f0ad06a6ab0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#33 0x00007f0ad06a6b5c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#34 0x00007f0ad729d45e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#35 0x00007f0ad7db85b6 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtGui.so.4
#36 0x00007f0ad726b7bf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#37 0x00007f0ad726bb25 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#38 0x00007f0ad7271779 in QCoreApplication::exec() () at /lib64/libQtCore.so.4
#39 0x000055832908125a in runKMyMoney(KApplication*, KStartupLogo*) [clone .isra.9] ()
#40 0x000055832907e548 in main ()

Reported using DrKonqi
Comment 1 Thomas Baumgart 2016-07-24 21:00:05 UTC
The backtrace does not show any reference to KMyMoney specific code (except the first routine in frame #39). Does the problem also show if you use the Oxygen theme?
Comment 2 Rob V 2016-07-24 22:02:55 UTC
Created attachment 100277 [details]
attachment-10802-0.html

Didn't even notice Fedora had switched the widget theme. I switched back to
Oxygen and can confirm that exactly the same occurs. Specifically, KNotify
crashes a second or two after clicking Tools > Consistency Check. The
consistency check windows then works absolutely fine. The KMyMoney crash
then occurs by clicking Edit > Find Transaction > Date tab. I initially
thought it crashed at random after switching to that tab, but have now
narrowed it down to opening the datepicker widget and clicking the year.
Sometimes just clicking to enter a year causes a crash, other times it is
after pressing enter to navigate to that year.

rvalkass@gmail.com

On 24 July 2016 at 22:00, Thomas Baumgart via KDE Bugzilla <
bugzilla_noreply@kde.org> wrote:

> https://bugs.kde.org/show_bug.cgi?id=366043
>
> --- Comment #1 from Thomas Baumgart <tbaumgart@kde.org> ---
> The backtrace does not show any reference to KMyMoney specific code
> (except the
> first routine in frame #39). Does the problem also show if you use the
> Oxygen
> theme?
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 3 Thomas Baumgart 2016-07-25 09:48:09 UTC
Can you provide a backtrace using Oxygen as well?
Comment 4 Rob V 2016-07-25 19:56:31 UTC
Created attachment 100300 [details]
KNotify crash with Oxygen widgets
Comment 5 Rob V 2016-07-25 19:57:12 UTC
Created attachment 100301 [details]
KMyMoney crash with Oxygen widgets
Comment 6 Thomas Baumgart 2016-07-26 07:16:21 UTC
Can you provoke the crash also, when you do exactly the same (selecting the year) when you use a different data picker (e.g. one for a schedule or transaction)? It is really strange, as the three backtraces you sent all show different scenarios. Can you try to upgrade to KMyMoney 4.8.0 (though I don't think it should make a difference but one never knows)?
Comment 7 Rex Dieter 2016-07-26 13:24:31 UTC
comment #4 is a crash not uncommon when using phonon-vlc backend, where both Qt4/Qt5 get pulled into the same program space.  I thought fedora/rpmfusion vlc packages were fixed to prevent this happening, but alas apparently not.  Fixes/workarounds include:
* use phonon gstreamer backend (or uninstall phonon-vlc)
* run: /usr/lib64/vlc/vlc-cache-gen -f /usr/lib64/vlc

The others are odd too, but perhaps some pixmap cache refresh could help, try:
$ rm /var/tmp/kdecache-$USER/*.kcache

(In the meantime, I'll work on kmymoney-4.8.0 updates for fedora)
Comment 8 Rob V 2016-07-26 21:02:53 UTC
The KMyMoney crash does occur with all date picker widgets, not just the Find Transaction one.

Regenerating the VLC plugin cache worked to sort of fix the KNotify crash (KNotify no longer crashes, and a sound of some description is now emitted, a very garbled version of the usual dialog box sound). It's clear that the two crashes are completely unrelated (KMyMoney still crashes even now that KNotify is fixed), but initially I thought there may have been a chance they were related.

Clearing the pixmap cache, however, made no difference to KMyMoney's crash on entering a year into the date picker widget. I'll try updating to 4.8.0 in case that fixes things.
Comment 9 Rob V 2016-07-26 21:40:33 UTC
4.8.0 still has the same bug.

Backtrace:

Application: KMyMoney (kmymoney), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#6  0x00007f715bc036f5 in raise () at /lib64/libc.so.6
#7  0x00007f715bc052fa in abort () at /lib64/libc.so.6
#8  0x00007f715bc44600 in __libc_message () at /lib64/libc.so.6
#9  0x00007f715bc4eb53 in _int_malloc () at /lib64/libc.so.6
#10 0x00007f715bc4ff50 in malloc () at /lib64/libc.so.6
#11 0x00007f715c54e978 in operator new(unsigned long) () at /lib64/libstdc++.so.6
#12 0x00007f715daf660a in QRegion::QRegion(QRect const&, QRegion::RegionType) () at /lib64/libQtGui.so.4
#13 0x00007f715daa0e86 in QPainter::clipRegion() const () at /lib64/libQtGui.so.4
#14 0x00007f715d9a66c3 in QWidget::render(QPainter*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () at /lib64/libQtGui.so.4
#15 0x00007f71445f56c8 in Oxygen::TransitionWidget::grabBackground(QPixmap&, QWidget*, QRect&) const () at /usr/lib64/kde4/plugins/styles/oxygen.so
#16 0x00007f71445f4b88 in Oxygen::TransitionWidget::grab(QWidget*, QRect) () at /usr/lib64/kde4/plugins/styles/oxygen.so
#17 0x00007f71445f12a9 in Oxygen::LineEditData::initializeAnimation() () at /usr/lib64/kde4/plugins/styles/oxygen.so
#18 0x00007f71445f0524 in Oxygen::LineEditData::textChanged() () at /usr/lib64/kde4/plugins/styles/oxygen.so
#19 0x00007f715cec3090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4
#20 0x00007f715dd7cfc2 in QLineEdit::textChanged(QString const&) () at /lib64/libQtGui.so.4
#21 0x00007f715dd7d3f9 in QLineEdit::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /lib64/libQtGui.so.4
#22 0x00007f715cec3090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4
#23 0x00007f715dff28d5 in QLineControl::textChanged(QString const&) () at /lib64/libQtGui.so.4
#24 0x00007f715dd814e1 in QLineControl::finishChange(int, bool, bool) () at /lib64/libQtGui.so.4
#25 0x00007f715dd81a7c in QLineControl::internalSetText(QString const&, int, bool) () at /lib64/libQtGui.so.4
#26 0x00007f715e7c049e in KDatePicker::dateChangedSlot(QDate const&) () at /lib64/libkdeui.so.5
#27 0x00007f715cec3090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4
#28 0x00007f715e7c3542 in KDateTable::dateChanged(QDate const&) () at /lib64/libkdeui.so.5
#29 0x00007f715e7c3662 in KDateTable::setDate(QDate const&) () at /lib64/libkdeui.so.5
#30 0x00007f715e7c0c63 in KDatePicker::selectYearClicked() () at /lib64/libkdeui.so.5
#31 0x00007f715cec3090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4
#32 0x00007f715dfef692 in QAbstractButton::toggled(bool) () at /lib64/libQtGui.so.4
#33 0x00007f715dd2792e in QAbstractButton::setChecked(bool) () at /lib64/libQtGui.so.4
#34 0x00007f715dd274d3 in QAbstractButtonPrivate::click() () at /lib64/libQtGui.so.4
#35 0x00007f715dd27624 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQtGui.so.4
#36 0x00007f715ddecb6a in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQtGui.so.4
#37 0x00007f715d9a8720 in QWidget::event(QEvent*) () at /lib64/libQtGui.so.4
#38 0x00007f715d951edc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#39 0x00007f715d95a557 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#40 0x00007f715e71e64a in KApplication::notify(QObject*, QEvent*) () at /lib64/libkdeui.so.5
#41 0x00007f715ceaeeed in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQtCore.so.4
#42 0x00007f715d95857b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /lib64/libQtGui.so.4
#43 0x00007f715d9d327d in QETWidget::translateMouseEvent(_XEvent const*) () at /lib64/libQtGui.so.4
#44 0x00007f715d9d19ac in QApplication::x11ProcessEvent(_XEvent*) () at /lib64/libQtGui.so.4
#45 0x00007f715d9fa419 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQtGui.so.4
#46 0x00007f7155f80703 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#47 0x00007f7155f80ab0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#48 0x00007f7155f80b5c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#49 0x00007f715cedf47e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#50 0x00007f715d9fa5b6 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtGui.so.4
#51 0x00007f715cead7bf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#52 0x00007f715ceadb25 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#53 0x00007f715ceb3779 in QCoreApplication::exec() () at /lib64/libQtCore.so.4
#54 0x0000000000627198 in runKMyMoney(KApplication*, KStartupLogo*) (a=0x2032b20, splash=0x21a3900) at /home/rob/Downloads/kmymoney-4.8.0/kmymoney/main.cpp:283
#55 0x0000000000625bc5 in main(int, char**) (argc=1, argv=0x7fff29208e98) at /home/rob/Downloads/kmymoney-4.8.0/kmymoney/main.cpp:182
Comment 10 Rex Dieter 2016-07-26 23:19:54 UTC
What widget style are you using (if other than default breeze)?
Comment 11 Rob V 2016-07-27 05:37:52 UTC
Created attachment 100325 [details]
attachment-18530-0.html

I have tried with Breeze initially, then switched back to Oxygen, and the crash occurs consistently with both.

-----Original Message-----
From: "Rex Dieter via KDE Bugzilla" <bugzilla_noreply@kde.org>
Sent: ‎27/‎07/‎2016 00:19
To: "rvalkass@gmail.com" <rvalkass@gmail.com>
Subject: [kmymoney4] [Bug 366043] KMyMoney crashes along with KNotify whensearching for transactions

https://bugs.kde.org/show_bug.cgi?id=366043

--- Comment #10 from Rex Dieter <rdieter@math.unl.edu> ---
What widget style are you using (if other than default breeze)?
Comment 12 Jack 2018-10-11 21:25:44 UTC
Is this still present in 5.0?
Comment 13 Rob V 2018-10-13 17:03:04 UTC
Nope - seems to have been fixed in 5.0.0
Comment 14 Justin Zobel 2020-12-17 05:38:07 UTC
Thank you for the crash report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 15 Rob V 2020-12-18 17:54:03 UTC
As I said above, this seems to have been resolved in 5.0.0 and above.