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

            Bug ID: 391727
           Summary: Trojita crashed when idling in INBOX
           Product: trojita
           Version: git
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Other
          Assignee: trojita-b...@kde.org
          Reporter: pali.ro...@gmail.com
  Target Milestone: ---

Trojita crashed when was minimized, idling in INBOX. Another IMAP client was
heavily loading new messages (more 20 000) into same INBOX which had Trojita
opened.

Trojita crashed with std::bad_alloc when it had allocated more then 2.1 GB. So
it looks like a memory leak for a newly received messages when IDLE is active.

Here is gdb backtrace:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Thread 1 "trojita" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: Adresár alebo súbor neexistuje.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff273342a in __GI_abort () at abort.c:89
#2  0x00007ffff304a0ad in __gnu_cxx::__verbose_terminate_handler() () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff3048066 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff30480b1 in std::terminate() () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff30482c9 in __cxa_throw () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff33cb9b2 in qBadAlloc() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff3449c9a in QListData::realloc_grow(int) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff3449d0f in QListData::append(int) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x0000555555654880 in QList<QString>::operator+= (this=0x7fffffffa790,
l=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:942
#10 0x000055555573c104 in std::function<void (Imap::Mailbox::TreeItemMessage
const&)>::operator()(Imap::Mailbox::TreeItemMessage const&) const
(__args#0=..., this=0x7fffffffa6d0) at /usr/include/c++/6/functional:2127
#11 Imap::Mailbox::threadForeachCallback<void>(std::function<void
(Imap::Mailbox::TreeItemMessage const&)>, Imap::Mailbox::TreeItemMessage
const&) (message=..., callback=...)
    at trojita/src/Imap/Model/ThreadingMsgListModel.cpp:1222
#12 Imap::Mailbox::ThreadingMsgListModel::threadForeach<void>(unsigned int
const&, std::function<void (Imap::Mailbox::TreeItemMessage const&)>) const
(this=this@entry=0x555555dbb560, root=@0x7fffffffa73c: 14175, 
    root@entry=@0x7fffffffa73c: <optimized out>, callback=...) at
trojita/src/Imap/Model/ThreadingMsgListModel.cpp:1248
#13 0x0000555555730fcb in
Imap::Mailbox::ThreadingMsgListModel::threadAggregatedFlags
(this=this@entry=0x555555dbb560, root=<optimized out>) at
trojita/src/Imap/Model/ThreadingMsgListModel.cpp:1271
#14 0x000055555573a78c in Imap::Mailbox::ThreadingMsgListModel::data
(this=0x555555dbb560, proxyIndex=..., role=963) at
trojita/src/Imap/Model/ThreadingMsgListModel.cpp:307
#15 0x00007ffff357dba9 in QSortFilterProxyModel::data(QModelIndex const&, int)
const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x0000555555723d39 in Imap::Mailbox::PrettyMsgListModel::data
(this=<optimized out>, index=..., role=963) at
trojita/src/Imap/Model/PrettyMsgListModel.cpp:175
#17 0x000055555562786f in QModelIndex::data (arole=963, this=0x7fffffffac80) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:426
#18 Gui::MsgItemDelegate::itemColor (this=this@entry=0x555555c47580, index=...)
at trojita/src/Gui/MsgItemDelegate.cpp:47
#19 0x0000555555627b5d in Gui::MsgItemDelegate::paint (this=0x555555c47580,
painter=0x7fffffffaff0, option=..., index=...) at
trojita/src/Gui/MsgItemDelegate.cpp:89
#20 0x00007ffff4127b10 in QTreeView::drawRow(QPainter*, QStyleOptionViewItem
const&, QModelIndex const&) const () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff412d597 in QTreeView::drawTree(QPainter*, QRegion const&) const
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff41320b6 in QTreeView::paintEvent(QPaintEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff3ee4278 in QWidget::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff3fcca0e in QFrame::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff40f3503 in QAbstractItemView::viewportEvent(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff4132f6c in QTreeView::viewportEvent(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff35b9741 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff3e9cb65 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff3ea4341 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff35b99e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff3edcfda in QWidgetPrivate::sendPaintEvent(QRegion const&) ()
from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff3edd646 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff3ede34c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff3ede239 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff3edd1a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff3ede34c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff3edd1a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#43 0x00007ffff3ede34c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff3edd1a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007ffff3ede34c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff3edd1a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007ffff3ede34c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*,
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff3edd1a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff3eacf8a in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff3ead147 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff3ecbf8f in QWidgetPrivate::syncBackingStore() () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff3ee4348 in QWidget::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007ffff3fe392b in QMainWindow::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007ffff3e9cb8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#55 0x00007ffff3ea4341 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#56 0x00007ffff35b99e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007ffff35bc16d in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007ffff360dc43 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x00007ffff0b3d7f7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007ffff0b3da60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007ffff0b3db0c in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#62 0x00007ffff360e04f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00007ffff35b79ca in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#64 0x00007ffff35c013c in QCoreApplication::exec() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#65 0x00005555555c5ce5 in main (argc=<optimized out>, argv=<optimized out>) at
trojita/src/Gui/main.cpp:218

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to