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

            Bug ID: 391718
           Summary: Trojita hangs in infinite loop
           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: ---

For unknown reasons trojita hangs in infinite loop on following place:

file trojita/src/Imap/Model/ThreadingMsgListModel.cpp
function ThreadingMsgListModel::handleDataChanged

134    while (rootCandidate.parent().isValid()) {
135        rootCandidate = rootCandidate.parent();
136    }

Adding breakpoint on line 137 proved it, while loop is never finished. GUI is
completely freezed.

What I did? Absolutely nothing, just had opened INBOX and waiting for a new
emails.

Here is gdb backtrace.

(gdb) bt
#0  0x0000555555738820 in QModelIndex::parent (this=0x7fffffffcc60) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:417
#1  Imap::Mailbox::ThreadingMsgListModel::handleDataChanged
(this=0x555555dbb410, topLeft=..., bottomRight=...) at
trojita/src/Imap/Model/ThreadingMsgListModel.cpp:134
#2  0x00007ffff35e595e in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff365c61c in QAbstractItemModel::dataChanged(QModelIndex const&,
QModelIndex const&, QVector<int> const&) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x0000555555718ccf in Imap::Mailbox::MsgListModel::handleDataChanged
(this=0x555555db6a70, topLeft=..., bottomRight=...) at
trojita/src/Imap/Model/MsgListModel.cpp:105
#5  0x00007ffff35e595e in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff365c61c in QAbstractItemModel::dataChanged(QModelIndex const&,
QModelIndex const&, QVector<int> const&) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff365d759 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff35e6499 in QObject::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff3e9cb8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff3ea4341 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff35b99e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff35bc16d in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff360dc43 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff0b3d7f7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff0b3da60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff0b3db0c in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff360e04f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007ffff35b79ca in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff35c013c in QCoreApplication::exec() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00005555555c5ce5 in main (argc=<optimized out>, argv=<optimized out>) at
trojita/src/Gui/main.cpp:218

Apparently I cannot debug it as gdb cannot resolve inlined function :-(

(gdb) up
#1  Imap::Mailbox::ThreadingMsgListModel::handleDataChanged
(this=0x555555dbb410, topLeft=..., bottomRight=...) at
trojita/src/Imap/Model/ThreadingMsgListModel.cpp:134
134         while (rootCandidate.parent().isValid()) {
(gdb) print rootCandidate
$1 = {r = 0, c = 0, i = 6899, m = 0x555555dbb410}
(gdb) print rootCandidate.parent
Cannot take address of method parent.
(gdb) print rootCandidate.parent()
Cannot evaluate function -- may be inlined
(gdb) print rootCandidate.parent().isValid()
Cannot evaluate function -- may be inlined
(gdb) print translated
$2 = {r = 2, c = 0, i = 6900, m = 0x555555dbb410}

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

Reply via email to