Bug 461137 - NeoChat crashes when attempting to enter/load the #KDE-QA room
Summary: NeoChat crashes when attempting to enter/load the #KDE-QA room
Status: RESOLVED WORKSFORME
Alias: None
Product: NeoChat
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Tobias Fella
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-10-28 23:07 UTC by Nate Graham
Modified: 2023-05-04 11:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2022-10-28 23:07:44 UTC
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
Comment 1 Tobias Fella 2023-05-04 11:37:07 UTC
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