Application: neochat (22.09) (Compiled from sources) Qt Version: 5.15.6 Frameworks Version: 5.100.0 Operating System: Linux 5.19.16-200.fc36.x86_64 x86_64 Windowing System: Wayland Distribution: Fedora Linux 36 (KDE Plasma) DrKonqi: 5.26.80 [KCrashBackend] -- Information about the crash: I used NeoChat to create a new room, #KDE-QA. Now, every time I open the app and click on the room in the sidebar, NeoChat crashes. It's 100% reproducible. The crash can be reproduced every time. -- Backtrace: Application: NeoChat (neochat), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #5 0x00007ffff4b17dbd in int indexOf<QLatin1String>(QExplicitlySharedDataPointer<QCborContainerPrivate> const&, QLatin1String, bool*) () at /lib64/libQt5Core.so.5 #6 0x00007ffff4b1844d in QJsonObject::value(QLatin1String) const () at /lib64/libQt5Core.so.5 #7 0x00007ffff711b6c6 in QJsonObject::operator[](QLatin1String) const (key=..., this=<optimized out>) at /usr/include/qt5/QtCore/qjsonobject.h:103 #8 Quotient::RoomEvent::id() const (this=<optimized out>) at /home/nate/kde/src/libquotient/lib/events/roomevent.cpp:20 #9 0x00007ffff70de7da in Quotient::Room::notificationFor(Quotient::TimelineItem const&) const (this=this@entry=0x24bb1f0, ti=...) at /home/nate/kde/src/libquotient/lib/room.cpp:992 #10 0x00007ffff710e081 in operator() (ti=..., acc=..., __closure=<synthetic pointer>) at /home/nate/kde/src/libquotient/lib/eventstats.cpp:21 #11 std::accumulate<std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, const Quotient::TimelineItem&, const Quotient::TimelineItem*> >, Quotient::EventStats, Quotient::EventStats::fromRange(const Quotient::Room*, const Quotient::Room::rev_iter_t&, const Quotient::Room::rev_iter_t&, const Quotient::EventStats&)::<lambda(Quotient::EventStats, const Quotient::TimelineItem&)> > (__binary_op=..., __init=..., __last=..., __first=...) at /usr/include/c++/12/bits/stl_numeric.h:169 #12 Quotient::EventStats::fromRange(Quotient::Room const*, std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, Quotient::EventStats const&) (room=0x24bb1f0, from=..., to=..., init=<optimized out>) at /home/nate/kde/src/libquotient/lib/eventstats.cpp:18 #13 0x00007ffff710e7ba in Quotient::EventStats::updateOnMarkerMove(Quotient::Room const*, std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&) (this=this@entry=0x253f710, room=0x24bb1f0, oldMarker=..., newMarker=...) at /home/nate/kde/src/libquotient/lib/eventstats.cpp:66 #14 0x00007ffff70e5a91 in Quotient::Room::Private::setLocalLastReadReceipt(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, Quotient::ReadReceipt, bool) (this=0x253f5d0, newMarker=..., newReceipt=..., deferStatsUpdate=<optimized out>) at /home/nate/kde/src/libquotient/lib/room.cpp:771 #15 0x00007ffff70e5dea in Quotient::Room::Private::setFullyReadMarker(QString const&) (this=0x253f5d0, eventId=<optimized out>) at /home/nate/kde/src/libquotient/lib/room.cpp:900 #16 0x00007ffff70e681d in Quotient::Room::Private::updateStats(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&) (this=0x253f5d0, from=..., to=...) at /home/nate/kde/src/libquotient/lib/room.cpp:808 #17 0x00007ffff70ee7b9 in Quotient::Room::Private::addHistoricalMessageEvents(std::vector<std::unique_ptr<Quotient::RoomEvent, std::default_delete<Quotient::RoomEvent> >, std::allocator<std::unique_ptr<Quotient::RoomEvent, std::default_delete<Quotient::RoomEvent> > > >&&) (this=0x253f5d0, events=<optimized out>) at /home/nate/kde/src/libquotient/lib/room.cpp:2993 #18 0x00007ffff70eecdb in operator() (__closure=<optimized out>) at /usr/include/c++/12/bits/allocator.h:174 #19 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Quotient::Room::Private::getPreviousContent(int, const QString&)::<lambda()> >::call (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #20 QtPrivate::Functor<Quotient::Room::Private::getPreviousContent(int, const QString&)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #21 QtPrivate::QFunctorSlotObject<Quotient::Room::Private::getPreviousContent(int, const QString&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #22 0x00007ffff4adb9a6 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #23 0x00007ffff7097df2 in Quotient::BaseJob::success(Quotient::BaseJob*) (this=this@entry=0x4baab00, _t1=<optimized out>, _t1@entry=0x4baab00) at /home/nate/kde/build/libquotient/Quotient_autogen/3INUWTIJ2C/moc_basejob.cpp:542 #24 0x00007ffff7131ae9 in Quotient::BaseJob::finishJob() (this=0x4baab00) at /home/nate/kde/src/libquotient/lib/jobs/basejob.cpp:633 #25 0x00007ffff4adb9a6 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #26 0x00007ffff644ecf8 in QNetworkReplyHttpImplPrivate::finished() () at /lib64/libQt5Network.so.5 #27 0x00007ffff4ad2c44 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5 #28 0x00007ffff57aed02 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #29 0x00007ffff4aa81c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #30 0x00007ffff4aab534 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5 #31 0x00007ffff4af9537 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5 #32 0x00007ffff3f18faf in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #33 0x00007ffff3f6e2c8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 #34 0x00007ffff3f16940 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #35 0x00007ffff4af902a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #36 0x00007ffff4aa6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #37 0x00007ffff4aaece2 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5 #38 0x000000000043416f in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nate/kde/src/neochat/src/main.cpp:303 [Inferior 1 (process 265375) detached] Reported using DrKonqi
I have seen similar crashes before, but since it doesn't happen anymore and we have no way of debugging when it doesn't happen, I'm going to close this. If it happens again, please reopen