Bug 482360 - A sudden crash when reading a group chat
Summary: A sudden crash when reading a group chat
Status: RESOLVED WORKSFORME
Alias: None
Product: NeoChat
Classification: Applications
Component: General (show other bugs)
Version: 23.08.5
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Tobias Fella
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-03-04 08:20 UTC by Nikita Vilunov
Modified: 2024-03-11 11:43 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 Nikita Vilunov 2024-03-04 08:20:07 UTC
Application: neochat (23.08.5)

Qt Version: 5.15.12
Frameworks Version: 5.115.0
Operating System: Linux 6.7.8-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.27.10 [KCrashBackend]

-- Information about the crash:
I'm afraid I cannot provide detailed info about this crash. I wasn't doing anything active with the window, just reading the group chat after sending a couple messages. Judging by the stacktrace, it could be caused by an event in another room.

The crash does not seem to be reproducible.

-- Backtrace:
Application: NeoChat (neochat), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x000074e20cd1930e in std::__uniq_ptr_impl<Quotient::RoomEvent, std::default_delete<Quotient::RoomEvent> >::_M_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.2.1/bits/unique_ptr.h:199
#7  std::unique_ptr<Quotient::RoomEvent, std::default_delete<Quotient::RoomEvent> >::get (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.2.1/bits/unique_ptr.h:470
#8  std::unique_ptr<Quotient::RoomEvent, std::default_delete<Quotient::RoomEvent> >::operator* (this=<optimized out>) at /usr/include/c++/13.2.1/bits/unique_ptr.h:453
#9  Quotient::EventItemBase::operator* (this=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/eventitem.h:55
#10 Quotient::Room::isEventNotable (this=0x61b7e209c8e0, ti=...) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/room.cpp:989
#11 0x000074e20cd44db3 in operator() (ti=..., acc=..., __closure=<synthetic pointer>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/eventstats.cpp:22
#12 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++/13.2.1/bits/stl_numeric.h:169
#13 Quotient::EventStats::fromRange (room=room@entry=0x61b7e209c8e0, from=..., to=..., init=...) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/eventstats.cpp:20
#14 0x000074e20cd452cd in Quotient::EventStats::updateOnMarkerMove (this=0x61b7e1c1ba40, room=0x61b7e209c8e0, oldMarker=..., newMarker=...) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/eventstats.cpp:68
#15 0x000074e20cd10d0a in Quotient::Room::Private::setLocalLastReadReceipt (this=0x61b7e1c1b900, newMarker=..., newReceipt=..., deferStatsUpdate=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/room.cpp:786
#16 0x000074e20cd31cba in operator() (evt=<optimized out>, __closure=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/room.cpp:3317
#17 Quotient::switchOnType<Quotient::Event, Quotient::Room::processEphemeralEvent(Quotient::EventPtr&&)::<lambda(const Quotient::ReceiptEvent&)> > (tail=<optimized out>, event=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/events/event.h:642
#18 Quotient::switchOnType<Quotient::Room::processEphemeralEvent(Quotient::EventPtr&&)::<lambda(const Quotient::TypingEvent&)>, Quotient::Room::processEphemeralEvent(Quotient::EventPtr&&)::<lambda(const Quotient::ReceiptEvent&)>, Quotient::Event> (fn1=<optimized out>, event=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/events/event.h:655
#19 Quotient::Room::processEphemeralEvent (this=0x61b7e209c8e0, event=<optimized out>) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/room.cpp:3273
#20 0x000074e20cd22e61 in Quotient::Room::updateData (this=0x61b7e209c8e0, data=..., fromCache=false) at /usr/src/debug/libquotient/libQuotient-0.8.1.2/Quotient/room.cpp:1956
#21 0x000074e20b0bb964 in QObject::event (this=0x61b7e209c8e0, e=0x61b7e50c62f0) at kernel/qobject.cpp:1347
#22 0x000074e20bd578ff in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x61b7e209c8e0, e=0x61b7e50c62f0) at kernel/qapplication.cpp:3640
#23 0x000074e20b093ef8 in QCoreApplication::notifyInternal2 (receiver=0x61b7e209c8e0, event=0x61b7e50c62f0) at kernel/qcoreapplication.cpp:1064
#24 0x000074e20b098e5b in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x61b7e127b580) at kernel/qcoreapplication.cpp:1821
#25 0x000074e20b0deec8 in postEventSourceDispatch (s=0x61b7e132b320) at kernel/qeventdispatcher_glib.cpp:277
#26 0x000074e20a58cf69 in g_main_dispatch (context=0x74e200000ec0) at ../glib/glib/gmain.c:3476
#27 0x000074e20a5eb3a7 in g_main_context_dispatch_unlocked (context=0x74e200000ec0) at ../glib/glib/gmain.c:4284
#28 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x74e200000ec0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#29 0x000074e20a58b162 in g_main_context_iteration (context=0x74e200000ec0, may_block=1) at ../glib/glib/gmain.c:4414
#30 0x000074e20b0e2d0c in QEventDispatcherGlib::processEvents (this=0x61b7e132aa40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#31 0x000074e20b092c04 in QEventLoop::exec (this=this@entry=0x7ffdb0468a20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#32 0x000074e20b0940a3 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#33 0x000074e20b52bef2 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#34 0x000074e20bd55cda in QApplication::exec () at kernel/qapplication.cpp:2832
#35 0x000061b7e0c49c65 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/neochat/neochat-23.08.5/src/main.cpp:355
[Inferior 1 (process 2273) detached]

Reported using DrKonqi
Comment 1 Tobias Fella 2024-03-11 11:43:27 UTC
Looking at the code, I can't find anything obviously wrong... since it's also not reproducible and  thus impossible for us to debug., I'm going to close it. Please reopen if it happens again - ideally with 24.02