Summary: | ASSERT: "it != ptrToInternal.constEnd()" in file trojita/src/Imap/Model/ThreadingMsgListModel.cpp, line 1488 | ||
---|---|---|---|
Product: | [Unmaintained] trojita | Reporter: | Pali Rohár <pali.rohar> |
Component: | Other | Assignee: | Trojita default assignee <trojita-bugs> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | bugs.kde.org |
Priority: | NOR | ||
Version: | git | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | trojita-connection-log |
Description
Pali Rohár
2018-03-11 16:42:59 UTC
If this is indeed an infinite loop, there's at least one cycle in the `threading` map. It would be nice to have access to the raw IMAP log. Without that log, I cannot really do anything. Created attachment 111653 [details]
trojita-connection-log
Now Trojita hangs in infinite loop every time I open mbox. In attachment is log file (some mbox names were anonymized to YYYY). Plus here is backtrace:
(gdb) bt
#0 Imap::Mailbox::TreeItemMessage::uid (this=0x564a08c1a080) at trojita/src/Imap/Model/MailboxTree.cpp:1436
#1 0x0000564a05c24571 in (anonymous namespace)::messageHasUidZero (item=<optimized out>) at trojita/src/Imap/Model/Model.cpp:96
#2 Common::linearLowerBoundWithUnknownElements<QTypedArrayData<Imap::Mailbox::TreeItem*>::iterator, unsigned int, bool (*)(Imap::Mailbox::TreeItem const*), bool (*)(Imap::Mailbox::TreeItem const*, unsigned int)> (lessThan=0x564a05c218e0 <(anonymous namespace)::uidComparator(Imap::Mailbox::TreeItem const*, uint)>, isUnknown=<optimized out>, value=<synthetic pointer>: <optimized out>, end=..., begin=...) at trojita/src/Common/FindWithUnknown.h:38
#3 Common::lowerBoundWithUnknownElements<QTypedArrayData<Imap::Mailbox::TreeItem*>::iterator, unsigned int, bool (*)(Imap::Mailbox::TreeItem const*), bool (*)(Imap::Mailbox::TreeItem const*, unsigned int)> (lessThan=0x564a05c218e0 <(anonymous namespace)::uidComparator(Imap::Mailbox::TreeItem const*, uint)>, isUnknown=<optimized out>, value=<synthetic pointer>: <optimized out>, end=..., begin=...) at trojita/src/Common/FindWithUnknown.h:60
#4 Imap::Mailbox::Model::findMessageOrNextOneByUid (this=this@entry=0x564a07585f50, list=list@entry=0x564a0758f250, uid=uid@entry=969217) at trojita/src/Imap/Model/Model.cpp:1299
#5 0x0000564a05c1411f in Imap::Mailbox::TreeItemMailbox::handleVanished (this=<optimized out>, model=<optimized out>, resp=...) at trojita/src/Imap/Model/MailboxTree.cpp:622
#6 0x0000564a05c79c76 in Imap::Mailbox::ObtainSynchronizedMailboxTask::handleVanished (this=0x564a077eaf20, resp=0x564a085f7ae0) at trojita/src/Imap/Tasks/ObtainSynchronizedMailboxTask.cpp:849
#7 0x0000564a05c2cdaf in Imap::Mailbox::Model::responseReceived (this=this@entry=0x564a07585f50, it=..., it@entry=...) at trojita/src/Imap/Model/Model.cpp:221
#8 0x0000564a05c2d3de in Imap::Mailbox::Model::responseReceived (this=0x564a07585f50, parser=0x564a077d8b30) at trojita/src/Imap/Model/Model.cpp:163
#9 0x00007ff71b4bf499 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ff71bd75b8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ff71bd7d341 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ff71b4929e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ff71b49516d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ff71b4e6c43 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ff718a167f7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ff718a16a60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ff718a16b0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ff71b4e704f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ff71b4909ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ff71b49913c in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x0000564a05adcce5 in main (argc=<optimized out>, argv=<optimized out>) at trojita/src/Gui/main.cpp:218
(gdb) next
Common::linearLowerBoundWithUnknownElements<QTypedArrayData<Imap::Mailbox::TreeItem*>::iterator, unsigned int, bool (*)(Imap::Mailbox::TreeItem const*), bool (*)(Imap::Mailbox::TreeItem const*, unsigned int)> (lessThan=0x564a05c218e0 <(anonymous namespace)::uidComparator(Imap::Mailbox::TreeItem const*, uint)>, isUnknown=<optimized out>, value=<synthetic pointer>: 969217, end=..., begin=...) at trojita/src/Common/FindWithUnknown.h:38
38 if (isUnknown(*begin)) {
(gdb) next
Common::lowerBoundWithUnknownElements<QTypedArrayData<Imap::Mailbox::TreeItem*>::iterator, unsigned int, bool (*)(Imap::Mailbox::TreeItem const*), bool (*)(Imap::Mailbox::TreeItem const*, unsigned int)> (lessThan=0x564a05c218e0 <(anonymous namespace)::uidComparator(Imap::Mailbox::TreeItem const*, uint)>, isUnknown=<optimized out>, value=<synthetic pointer>: 969217, end=..., begin=...) at trojita/src/Common/FindWithUnknown.h:60
60 return linearLowerBoundWithUnknownElements(begin, begin + n, value, isUnknown, lessThan);
(gdb) next
(a duplicate bug led me here, so I think that this is a correct report) 1) activate threading 2) open a mailbox 3) perform a search which returns something 4) switch to another mailbox where that search doesn't return anything 5) the threading is still preserved, and trojita assert-crashes: ASSERT: "it != ptrToInternal.constEnd()" in file trojita/src/Imap/Model/ThreadingMsgListModel.cpp, line 1488 (In reply to Jan Kundrát from comment #3) > > 1) activate threading > 2) open a mailbox > 3) perform a search which returns something > 4) switch to another mailbox where that search doesn't return anything > 5) the threading is still preserved, and trojita assert-crashes: > > ASSERT: "it != ptrToInternal.constEnd()" in file > trojita/src/Imap/Model/ThreadingMsgListModel.cpp, line 1488 I cannot reproduce this with my current Trojitá (~git master). So unless someone can reproduce it with a recent version (from git), I suggest we close this. Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone! |