| Summary: | Crash when switching from a loading space and back to it | ||
|---|---|---|---|
| Product: | [Applications] NeoChat | Reporter: | Elias Probst <mail> |
| Component: | General | Assignee: | Tobias Fella <fella> |
| Status: | CONFIRMED --- | ||
| Severity: | crash | CC: | carl, josh |
| Priority: | NOR | ||
| Version First Reported In: | 25.04.3 | ||
| Target Milestone: | --- | ||
| Platform: | NixOS | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | GDB backtrace of crashed NeoChat | ||
Created attachment 183107 [details] GDB backtrace of crashed NeoChat SUMMARY When switching away from a space while it is loading and then immediately back to it, NeoChat will crash. STEPS TO REPRODUCE 1. Have a few spaces with some rooms that might take a bit to load 2. Switch to such a space 3. Become impatient while it is loading, switch to another space 4. Switch immediately back to the previous space OBSERVED RESULT NeoChat will crash (full BT is attached): #0 0x00000000009498cc in Quotient::Room::isEventNotable(Quotient::TimelineItem const&) const () #1 0x00000000009afd12 in 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&) () #2 0x00000000009b04fc 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&) () #3 0x00000000009599d1 in Quotient::Room::Private::setLocalLastReadReceipt(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, Quotient::ReadReceipt, bool) () #4 0x0000000000959c1d in Quotient::Room::Private::setFullyReadMarker(QString const&) () #5 0x000000000095a9b1 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&) () #6 0x00000000009694c7 in QtPrivate::QCallableObject<Quotient::Room::Private::getPreviousContent(int, QString const&)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () #7 0x00007ffff34207ee in void doActivate<false>(QObject*, int, void**) () at /nix/store/l9kvcx3wna1bla7xpy1629hawjqmna4y-qtbase-6.9.0/lib/libQt6Core.so.6 #8 0x00000000008bcec0 in Quotient::BaseJob::success(Quotient::BaseJob*) () #9 0x00000000009e3145 in Quotient::BaseJob::finishJob() () EXPECTED RESULT NeoChat doesn't crash when switching back and forth between spaces that are still loading SOFTWARE/OS VERSIONS Operating System: NixOS 25.11 KDE Plasma Version: 6.4.2 KDE Frameworks Version: 6.15.0 Qt Version: 6.9.0 Kernel Version: 6.15.4 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen AI 5 340 w/ Radeon 840M Memory: 32 GiB of RAM (30.6 GiB usable) Graphics Processor: AMD Radeon Graphics ADDITIONAL INFORMATION