Nheko-Reborn / nheko

Desktop client for Matrix using Qt and C++20.
https://nheko-reborn.github.io/
GNU General Public License v3.0
1.9k stars 199 forks source link

Crash when leaving a room while joining wasn't fully finished (?) #882

Open tastytea opened 2 years ago

tastytea commented 2 years ago

Describe the bug

I joined a room, saw that it was the wrong one and left it. It was apparently still loading stuff. I have no idea if that was the cause, the crash wasn't immediate but with a slight delay. But it was the only unusual thing I did around the time.

To Reproduce

  1. Join #gentoo-dev:libera.chat
  2. Quickly leave the room
  3. Crash?

What happened?

No response

Expected behavior

No response

Screenshots

No response

Version

0.9.1-88d3e1bd

Operating system

Linux

Installation method

Some repository (AUR, homebrew, distribution repository, PPA, etc)

Qt version

5.15.2

C++ compiler

gcc-11.2.0

Desktop Environment

n/a

Did you use profiles?

Relevant log output

[2022-01-08 00:14:36.366] [ui] [warning] Already loading older messages
[2022-01-08 00:14:38.910] [ui] [warning] Already loading older messages
[2022-01-08 00:14:41.041] [ui] [warning] Already loading older messages
[2022-01-08 00:14:42.909] [ui] [warning] Already loading older messages
[2022-01-08 00:14:44.117] [qml] [warning] render glyph failed err=13 face=0x557cf7819740, glyph=
556 (:0, )
[2022-01-08 00:14:44.118] [qml] [warning] render glyph failed err=13 face=0x557cf7819740, glyph=
556 (:0, )
[2022-01-08 00:14:44.193] [qml] [warning] render glyph failed err=13 face=0x557cf7819740, glyph=959 (:0, )
[2022-01-08 00:14:44.193] [qml] [warning] render glyph failed err=13 face=0x557cf7819740, glyph=
959 (:0, )
[2022-01-08 00:14:44.624] [qml] [warning] render glyph failed err=13 face=0x557cf7819740, glyph=
920 (:0, )

Backtrace

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `nheko'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007ff7bd73063e in raise () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7ff7734a7640 (LWP 3708))]

Thread 10 (Thread 0x7ff7966be640 (LWP 3702)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda6b3 in g_main_loop_run () at ../glib-2.68.4/glib/gmain.c:4329
#4  0x00007ff7b0087d32 in provider_thread () at ../gst-plugins-good-1.18.4/sys/v4l2/gstv4l2deviceprovider.c:403
#5  0x00007ff7bdd02b5d in g_thread_proxy () at ../glib-2.68.4/glib/gthread.c:826
#6  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#7  0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 9 (Thread 0x7ff7b8adf640 (LWP 3683)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda4af in g_main_context_iteration () at ../glib-2.68.4/glib/gmain.c:4196
#4  0x00007ff7bdcda4f1 in glib_worker_main () at ../glib-2.68.4/glib/gmain.c:6089
#5  0x00007ff7bdd02b5d in g_thread_proxy () at ../glib-2.68.4/glib/gthread.c:826
#6  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#7  0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7ff7977fe640 (LWP 3695)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda4af in g_main_context_iteration () at ../glib-2.68.4/glib/gmain.c:4196
#4  0x00007ff7be246b24 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#5  0x00007ff7be1f63e3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventloop.cpp:232
#6  0x00007ff7be05125a in QThread::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread.cpp:547
#7  0x00007ff7bf30f64f in QDBusConnectionManager::run() () at /var/tmp/portage/dev-qt/qtdbus-5.15.2-r10/work/qtbase-a4f9e56975fa6ab4a1f63a9b34a4d77b1cfe4acd/src/dbus/qdbusconnection.cpp:179
#8  0x00007ff7be052331 in QThreadPrivate::start(void*) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread_unix.cpp:329
#9  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#10 0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7ff7c00c5f40 (LWP 3675)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda4af in g_main_context_iteration () at ../glib-2.68.4/glib/gmain.c:4196
#4  0x00007ff7be246b24 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#5  0x00007ff7be1f63e3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventloop.cpp:232
#6  0x00007ff7be1fe4b5 in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qcoreapplication.cpp:1375
#7  0x0000557cf31f8771 in main() () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999/src/main.cpp:354

Thread 6 (Thread 0x7ff7b29e7640 (LWP 3706)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda4af in g_main_context_iteration () at ../glib-2.68.4/glib/gmain.c:4196
#4  0x00007ff7be246b24 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#5  0x00007ff7be1f63e3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventloop.cpp:232
#6  0x00007ff7be05125a in QThread::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread.cpp:547
#7  0x00007ff7bf94a136 in QQuickPixmapReader::run() () at /var/tmp/portage/dev-qt/qtdeclarative-5.15.2-r14/work/qtdeclarative-7024ac8358f9e576dff013ce2452c1daa0d34506/src/quick/util/qquickpixmapcache.cpp:1024
#8  0x00007ff7be052331 in QThreadPrivate::start(void*) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread_unix.cpp:329
#9  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#10 0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7ff796ebf640 (LWP 3699)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bd6b78a1 in poll_func () at /usr/lib64/libpulse.so.0
#2  0x00007ff7bd6a8332 in pa_mainloop_poll () at /usr/lib64/libpulse.so.0
#3  0x00007ff7bd6a8964 in pa_mainloop_iterate () at /usr/lib64/libpulse.so.0
#4  0x00007ff7bd6a89fe in pa_mainloop_run () at /usr/lib64/libpulse.so.0
#5  0x00007ff7bd6b7969 in thread () at /usr/lib64/libpulse.so.0
#6  0x00007ff7bc946b8a in internal_thread_func () at /usr/lib64/pulseaudio/libpulsecommon-15.0.so
#7  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#8  0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7ff795c57640 (LWP 3705)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda4af in g_main_context_iteration () at ../glib-2.68.4/glib/gmain.c:4196
#4  0x00007ff7be246b24 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#5  0x00007ff7be1f63e3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/kernel/qeventloop.cpp:232
#6  0x00007ff7be05125a in QThread::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread.cpp:547
#7  0x00007ff7bf69f625 in QQmlThreadPrivate::run() () at /var/tmp/portage/dev-qt/qtdeclarative-5.15.2-r14/work/qtdeclarative-7024ac8358f9e576dff013ce2452c1daa0d34506/src/qml/qml/ftw/qqmlthread.cpp:155
#8  0x00007ff7be052331 in QThreadPrivate::start(void*) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread_unix.cpp:329
#9  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#10 0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7ff7b3c37640 (LWP 3684)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdcda39e in g_main_context_poll () at ../glib-2.68.4/glib/gmain.c:4434
#2  g_main_context_iterate () at ../glib-2.68.4/glib/gmain.c:4126
#3  0x00007ff7bdcda6b3 in g_main_loop_run () at ../glib-2.68.4/glib/gmain.c:4329
#4  0x00007ff7bcb24256 in gdbus_shared_thread_func () at ../glib-2.68.4/gio/gdbusprivate.c:280
#5  0x00007ff7bdd02b5d in g_thread_proxy () at ../glib-2.68.4/glib/gthread.c:826
#6  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#7  0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7ff7b9ca7640 (LWP 3676)):
#0  0x00007ff7bd7e569f in poll () at /lib64/libc.so.6
#1  0x00007ff7bdc54c90 in poll () at /usr/include/bits/poll2.h:47
#2  _xcb_conn_wait () at /var/tmp/portage/x11-libs/libxcb-1.14/work/libxcb-1.14/src/xcb_conn.c:480
#3  0x00007ff7bdc56677 in xcb_wait_for_event () at /var/tmp/portage/x11-libs/libxcb-1.14/work/libxcb-1.14/src/xcb_in.c:697
#4  0x00007ff7b9ed42d0 in QXcbEventQueue::run() () at /var/tmp/portage/dev-qt/qtgui-5.15.2-r15/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/plugins/platforms/xcb/qxcbeventqueue.cpp:228
#5  0x00007ff7be052331 in QThreadPrivate::start(void*) () at /var/tmp/portage/dev-qt/qtcore-5.15.2-r11/work/qtbase-7c6c0030cf80ef7b9ace42996b0e0c3a72f76860/src/corelib/thread/qthread_unix.cpp:329
#6  0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#7  0x00007ff7bd7effaf in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7ff7734a7640 (LWP 3708)):
#0  0x00007ff7bd73063e in raise () at /lib64/libc.so.6
#1  0x00007ff7bd71a536 in abort () at /lib64/libc.so.6
#2  0x00007ff7bdad58d2 in __gnu_cxx::__verbose_terminate_handler() () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007ff7bdae1586 in __cxxabiv1::__terminate(void (*)()) () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:48
#4  0x00007ff7bdae15f1 in std::terminate() () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:58
#5  0x00007ff7bdae1873 in __cxa_throw() () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/libsupc++/eh_throw.cc:95
#6  0x00007ff7bdad54cd in operator new(unsigned long) () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/libsupc++/new_op.cc:54
#7  0x0000557cf338d4d5 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/basic_string.tcc:219
#8  0x0000557cf33aa7f6 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/basic_string.h:255
#9  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/basic_string.h:274
#10 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/basic_string.h:459
#11 std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/basic_string.h:6134
#12 Cache::getEventOrderDb(lmdb::txn&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999/src/Cache_p.h:571
#13 Cache::previousBatchToken(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999/src/Cache.cpp:1872
#14 0x0000557cf322355c in operator() () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999/src/timeline/EventStore.cpp:838
#15 __invoke_impl<void, EventStore::fetchMore()::<lambda(const mtx::responses::Messages&, mtx::http::RequestErr)>&, const mtx::responses::Messages&, const std::optional<mtx::http::ClientError>&> () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/invoke.h:61
#16 __invoke_r<void, EventStore::fetchMore()::<lambda(const mtx::responses::Messages&, mtx::http::RequestErr)>&, const mtx::responses::Messages&, const std::optional<mtx::http::ClientError>&> () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/invoke.h:111
#17 _M_invoke() () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/std_function.h:291
#18 0x0000557cf352dbfb in std::function<void (mtx::responses::Messages const&, std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::optional<mtx::http::ClientError> const&)>::operator()(mtx::responses::Messages const&, std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::optional<mtx::http::ClientError> const&) const () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/std_function.h:560
#19 mtx::http::Client::prepare_callback<mtx::responses::Messages>(std::function<void (mtx::responses::Messages const&, std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::optional<mtx::http::ClientError> const&)>)::{lambda(std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::basic_string_view<char, std::char_traits<char> > const&, int, int)#1}::operator()(std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::basic_string_view<char, std::char_traits<char> > const&, int, int) const () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999_build/_deps/matrixclient-src/include/mtxclient/http/client_impl.hpp:153
#20 0x0000557cf34ce10b in std::function<void (std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::basic_string_view<char, std::char_traits<char> > const&, int, int)>::operator()(std::optional<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, coeurl::header_less, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&, std::basic_string_view<char, std::char_traits<char> > const&, int, int) const () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/std_function.h:560
#21 operator()() () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999_build/_deps/matrixclient-src/lib/http/client.cpp:85
#22 0x0000557cf367c7c5 in std::function<void (coeurl::Request const&)>::operator()(coeurl::Request const&) const () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/bits/std_function.h:560
#23 coeurl::Client::remove_request(coeurl::Request*) () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999_build/_deps/coeurl-src/lib/client.cpp:333
#24 0x0000557cf367d283 in coeurl::Client::check_multi_info() () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999_build/_deps/coeurl-src/lib/client.cpp:283
#25 0x0000557cf367d3d5 in coeurl::Client::event_cb(int, short, void*) () at /var/tmp/portage/net-im/nheko-9999/work/nheko-9999_build/_deps/coeurl-src/lib/client.cpp:76
#26 0x00007ff7c00ea7e6 in event_persist_closure () at /var/tmp/portage/dev-libs/libevent-2.1.12/work/libevent-2.1.12-stable/event.c:1623
#27 event_process_active_single_queue () at /var/tmp/portage/dev-libs/libevent-2.1.12/work/libevent-2.1.12-stable/event.c:1682
#28 0x00007ff7c00eb34f in event_process_active () at /var/tmp/portage/dev-libs/libevent-2.1.12/work/libevent-2.1.12-stable/event.c:1783
#29 event_base_loop () at /var/tmp/portage/dev-libs/libevent-2.1.12/work/libevent-2.1.12-stable/event.c:2006
#30 0x00007ff7bdb0caf0 in execute_native_thread_routine() () at /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/libstdc++-v3/src/c++11/thread.cc:82
#31 0x00007ff7bd8bfd4e in start_thread () at /lib64/libpthread.so.0
#32 0x00007ff7bd7effaf in clone () at /lib64/libc.so.6
deepbluev7 commented 2 years ago

It's trying to write to a db, that it already deleted. Probably happens with leaving while paginating backwards, independent of when you joined.

sc0w commented 2 years ago

I confirm it happens here with 0.9.0, it didn't happen with 0.8.2

Sometimes if I left a room, nheko crashes

Techcable commented 2 years ago

I have the same issue on a M1 Mac and Nheko 0.9.1-dfab0c92. This crashes constantly for me and makes it basically unusable.

The abort appears to be caused by an uncaught exception in coeurl::Client::remove_request(coeurl::Request*)

https://gist.github.com/Techcable/7d56a25b2ee44f97ff401784f8427def

deepbluev7 commented 2 years ago

@Techcable, your issue is #957. We still need to rebuild the macOS and Windows builds for a fix.

Techcable commented 2 years ago

@Techcable, your issue is #957. We still need to rebuild the macOS and Windows builds for a fix.

Ah so should I try recompiling from source or using nightlies or something?

deepbluev7 commented 2 years ago

The build for that is currently in progress, I'll upload it in 2h or tomorrow and you will find it on the releases page. Does that sound acceptable?

deepbluev7 commented 2 years ago

Done, https://github.com/Nheko-Reborn/nheko/releases/tag/v0.9.1-1 should fix it.

Techcable commented 2 years ago

@deepbluev7

The build for that is currently in progress, I'll upload it in 2h or tomorrow and you will find it on the releases page

Thank you so much! The I appreciate this :)

This build does appear to fix my issue. I'll comment on #957 if it looks I have the same or open another one if it looks different.

I've gone back and hidden my original comment 😉

[...] Does that sound acceptable?

Please don't feel pressures to have hard deadlines like this. You are working for free and I appreciate anything you can do :)

deepbluev7 commented 2 years ago

@Techcable Well, I knew the builds take around 40 Minutes and there were 3 in the queue and the last one was the release. So it wasn't really a deadline, more of an eastimate. Only uncertainty was if I went to bed before the builds finished. :D