nheko
nheko copied to clipboard
Crash when logging in on a new profile
Describe the bug
I've had this crash very consistently but I don't really understand enough about the database setup to understand why its happening.
Maybe-relevant dependencies: lmdb 0.9.24-1 (debian) lmdbxx (bundled version) olm (bundled version)
To Reproduce
- Log in to an account on the default profile
- Close and re-launch Nheko with a new profile using the --profile option
- Attempt to log in again
- SIGSEGV ensues
If you re-launch Nheko again afterwards then the profile is logged in and functions fine afterwards.
What happened?
No response
Expected behavior
No response
Screenshots
No response
Version
f3ff56692e16fdeb33a15fa8e7123a058595d9ad
Operating system
Linux
Installation method
Local build
Qt version
No response
C++ compiler
No response
Desktop Environment
No response
Did you use profiles?
- [x] Profiles used?
Relevant log output
No response
Backtrace
Thread 1 (Thread 0x7fffef1d2340 (LWP 34002) "nheko"):
#0 0x00007ffff578f7c4 in mdb_txn_begin (env=0x0, parent=0x0, flags=0, ret=0x7fffffffc9d8) at mdb.c:2830
txn = <optimized out>
ntxn = <optimized out>
rc = <optimized out>
size = <optimized out>
tsize = <optimized out>
#1 0x0000555557272681 in lmdb::txn_begin(MDB_env*, MDB_txn*, unsigned int, MDB_txn**) (env=0x0, parent=0x0, flags=0, txn=0x7fffffffc9d8) at /home/child/.build-qtcreator/nheko-unsanitary-Debug/_deps/lmdbxx-src/lmdb++.h:553
rc = 32767
#2 0x00005555572728b7 in lmdb::txn::begin(MDB_env*, MDB_txn*, unsigned int) (env=0x0, parent=0x0, flags=0) at /home/child/.build-qtcreator/nheko-unsanitary-Debug/_deps/lmdbxx-src/lmdb++.h:1141
handle = 0x0
#3 0x0000555557438f3c in Cache::getTimelineMentions() (this=0x555558b249d0) at /home/child/third-party/nheko/src/Cache.cpp:1986
txn = {_handle = 0x2, static default_flags = 0}
notifs = {d = 0x0}
room_ids = {<std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {_M_impl = {<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, <std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_impl_data> = {_M_start = 0x5555577dbd70, _M_finish = 0x555557666340 <(anonymous namespace)::instance_>, _M_end_of_storage = 0x7fffffffca60}, <No data fields>}}, <No data fields>}
#4 0x0000555557454355 in cache::getTimelineMentions() () at /home/child/third-party/nheko/src/Cache.cpp:5074
#5 0x00005555574dad87 in ChatPage::loadStateFromCache() (this=0x5555577dbd70) at /home/child/third-party/nheko/src/ChatPage.cpp:413
#6 0x00005555574d9f66 in operator()() const (__closure=0x5555588e0cb0) at /home/child/third-party/nheko/src/ChatPage.cpp:339
isInitialized = true
cacheVersion = cache::CacheVersion::Current
this = 0x5555577dbd70
#7 0x00005555574ef4cf in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ChatPage::bootstrap(QString, QString, QString)::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7fffffffd030) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#8 0x00005555574edcbe in QtPrivate::Functor<ChatPage::bootstrap(QString, QString, QString)::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fffffffd030) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#9 0x00005555574eb4fc in QtPrivate::QFunctorSlotObject<ChatPage::bootstrap(QString, QString, QString)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x5555588e0ca0, r=0x5555577dbd70, a=0x7fffffffd030, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443
#10 0x00007ffff45fb133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffd030, r=0x5555577dbd70, this=0x5555588e0ca0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
obj = {_M_t = {<std::__uniq_ptr_impl<QtPrivate::QSlotObjectBase, doActivate<false>(QObject*, int, void**)::Deleter>> = {_M_t = {<std::_Tuple_impl<0, QtPrivate::QSlotObjectBase*, doActivate<false>(QObject*, int, void**)::Deleter>> = {<std::_Tuple_impl<1, doActivate<false>(QObject*, int, void**)::Deleter>> = {<std::_Head_base<1, doActivate<false>(QObject*, int, void**)::Deleter, true>> = {_M_head_impl = {<No data fields>}}, <No data fields>}, <std::_Head_base<0, QtPrivate::QSlotObjectBase*, false>> = {_M_head_impl = 0x5555588e0ca0}, <No data fields>}, <No data fields>}}, <No data fields>}}
receiver = 0x5555577dbd70
td = <optimized out>
receiverInSameThread = <optimized out>
senderData = {previous = 0x0, receiver = 0x5555577dbd70, sender = 0x555558b249d0, signal = 11}
c = 0x555558b26a40
connections = {d = 0x55555775d400}
list = <optimized out>
inSenderThread = true
highestConnectionId = 7
signalVector = 0x555557759cd0
currentThreadId = 0x7fffef1d2340
sp = <optimized out>
signal_spy_set = 0x0
empty_argv = {0x0}
senderDeleted = false
#11 doActivate<false>(QObject*, int, void**) (sender=0x555558b249d0, signal_index=11, argv=0x7fffffffd030) at kernel/qobject.cpp:3886
obj = {_M_t = {<std::__uniq_ptr_impl<QtPrivate::QSlotObjectBase, doActivate<false>(QObject*, int, void**)::Deleter>> = {_M_t = {<std::_Tuple_impl<0, QtPrivate::QSlotObjectBase*, doActivate<false>(QObject*, int, void**)::Deleter>> = {<std::_Tuple_impl<1, doActivate<false>(QObject*, int, void**)::Deleter>> = {<std::_Head_base<1, doActivate<false>(QObject*, int, void**)::Deleter, true>> = {_M_head_impl = {<No data fields>}}, <No data fields>}, <std::_Head_base<0, QtPrivate::QSlotObjectBase*, false>> = {_M_head_impl = 0x5555588e0ca0}, <No data fields>}, <No data fields>}}, <No data fields>}}
receiver = 0x5555577dbd70
td = <optimized out>
receiverInSameThread = <optimized out>
senderData = {previous = 0x0, receiver = 0x5555577dbd70, sender = 0x555558b249d0, signal = 11}
c = 0x555558b26a40
connections = {d = 0x55555775d400}
list = <optimized out>
inSenderThread = true
highestConnectionId = 7
signalVector = 0x555557759cd0
currentThreadId = 0x7fffef1d2340
sp = <optimized out>
signal_spy_set = 0x0
empty_argv = {0x0}
senderDeleted = false
#12 0x0000555556fda79d in Cache::databaseReady() (this=0x555558b249d0) at /home/child/.build-qtcreator/nheko-unsanitary-Debug/nheko_autogen/UVLADIE3JM/moc_Cache_p.cpp:295
#13 0x00005555574295ff in Cache::loadSecrets(std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > >) (this=0x555558b249d0, toLoad=...) at /home/child/third-party/nheko/src/Cache.cpp:366
settings = 0x555557718f08
name_ = @0x555558b5b920: {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x3 <error: Cannot access memory at address 0x3>}, _M_string_length = 0, {_M_local_buf = "\000\000\000\000\001\000\016\000\000\000\000\000\000\000\000", _M_allocated_capacity = 3940653968916480}}
internal = @0x7fffffffd350: false
job = 0x555558995af8
name = {d = 0x5555577dc300}
#14 0x0000555557428f92 in operator()() const (__closure=0x555558995af0) at /home/child/third-party/nheko/src/Cache.cpp:421
toLoad = {<std::_Vector_base<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > >> = {_M_impl = {<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> >> = {<__gnu_cxx::new_allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> >> = {<No data fields>}, <No data fields>}, <std::_Vector_base<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}
this = 0x555558b249d0
secret = {d = 0x0}
job = 0xc35df8458b481089
toLoad = {<std::_Vector_base<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > >> = {_M_impl = {<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> >> = {<__gnu_cxx::new_allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> >> = {<No data fields>}, <No data fields>}, <std::_Vector_base<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > >::_Vector_impl_data> = {_M_start = 0xf87d8948e5894855, _M_finish = 0x48008b48f8458b48, _M_end_of_storage = 0x48f8458b4828508d}, <No data fields>}}, <No data fields>}
name = {d = 0xccc3c9f85d8b48c0}
this = 0x950fc33948008b48
settings = 0x0
name_ = <error reading variable>
internal = @0x555558995af0: 208
job = 0x7ffff419b2f0 <g.g_signal_mutex_lock>
name = {d = 0x0}
#15 0x0000555557477a42 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Cache::loadSecrets(std::vector<std::pair<std::__cxx11::basic_string<char>, bool> >)::<lambda(QKeychain::Job*)> mutable::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x555558960098) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#16 0x0000555557472196 in QtPrivate::Functor<Cache::loadSecrets(std::vector<std::pair<std::__cxx11::basic_string<char>, bool> >)::<lambda(QKeychain::Job*)> mutable::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x555558960098) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#17 0x000055555746d60c in QtPrivate::QFunctorSlotObject<Cache::loadSecrets(std::vector<std::pair<std::__cxx11::basic_string<char>, bool> >)::<lambda(QKeychain::Job*)> mutable::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x555558995ae0, r=0x555558b249d0, a=0x555558960098, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443
#18 0x00007ffff45f10de in QObject::event(QEvent*) (this=0x555558b249d0, e=0x555558960050) at kernel/qobject.cpp:1314
mce = 0x555558960050
sender = {previous = 0x0, receiver = 0x555558b249d0, sender = 0x0, signal = -1}
#19 0x00007ffff52416bf in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x555558b249d0, e=0x555558960050) at kernel/qapplication.cpp:3632
consumed = false
filtered = false
#20 0x00007ffff45c4aca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555558b249d0, event=0x555558960050) at kernel/qcoreapplication.cpp:1063
selfRequired = true
result = false
cbdata = {0x555558b249d0, 0x555558960050, 0x7fffffffd51f}
d = <optimized out>
threadData = 0x55555768b760
scopeLevelCounter = {threadData = 0x55555768b760}
#21 0x00007ffff45c7b17 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55555768b760) at kernel/qcoreapplication.cpp:1817
e = 0x555558960050
pe = <optimized out>
r = <optimized out>
relocker = {m_func = {__locker = @0x7fffffffd5a0}, m_invoke = true}
event_deleter = {d = 0x555558960050}
locker = {_M_device = 0x55555768b790, _M_owns = false}
startOffset = 0
i = @0x55555768b784: 1
cleanup = {receiver = 0x0, event_type = 0, data = 0x55555768b760, exceptionCaught = true}
#22 0x00007ffff461ca83 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55555770b800) at kernel/qeventdispatcher_glib.cpp:277
source = 0x55555770b800
#23 0x00007ffff4058fab in g_main_dispatch (context=0x7fffe8005000) at ../../../glib/gmain.c:3417
dispatch = 0x7ffff461ca70 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
source = 0x55555770b800
current = 0x5555588f0c00
i = 0
__func__ = "g_main_dispatch"
#24 g_main_context_dispatch (context=0x7fffe8005000) at ../../../glib/gmain.c:4135
#25 0x00007ffff4059258 in g_main_context_iterate (context=context@entry=0x7fffe8005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4211
max_priority = 0
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = <optimized out>
fds = 0x5555588f0720
#26 0x00007ffff405930f in g_main_context_iteration (context=0x7fffe8005000, may_block=1) at ../../../glib/gmain.c:4276
retval = <optimized out>
#27 0x00007ffff461c104 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x555557717a50, flags=...) at kernel/qeventdispatcher_glib.cpp:423
d = 0x5555576ce380
canWait = <optimized out>
savedFlags = {i = 0}
result = <optimized out>
#28 0x00007ffff45c34db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd800, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
d = 0x5555588e1fe0
threadData = <optimized out>
locker = {val = 93825027050776}
app = <optimized out>
#29 0x00007ffff45cb7b0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
threadData = 0x55555768b760
eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff485d8c8 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff478e020 <qt_meta_stringdata_QObject>, data = 0x7ffff478df00 <qt_meta_data_QObject>, static_metacall = 0x7ffff45f98d0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555588e1fe0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff4790fc0 <qt_meta_stringdata_Qt>, data = 0x7ffff478e140 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff4855140 <QObject::staticMetaObject>}, stringdata = 0x7ffff47887a0 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff4788740 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff45c3220 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
returnCode = <optimized out>
#30 0x0000555557601b7f in main(int, char**) (argc=4, argv=0x7fffffffdeb8) at /home/child/third-party/nheko/src/main.cpp:358
userdata = {d = 0x5555576c7b00}
matrixUri = {d = 0x7ffff46aaae0 <QArrayData::shared_null>}
app = {<QApplication> = {<QGuiApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff50c40c0 <QGuiApplication::staticMetaObject>}, stringdata = 0x7ffff55f48a0 <qt_meta_stringdata_QApplication>, data = 0x7ffff55f4720 <qt_meta_data_QApplication>, static_metacall = 0x7ffff52451c0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5758fa0 <QApplication::staticMetaObject>}, stringdata = 0x555556c90260 <qt_meta_stringdata_SingleApplication>, data = 0x555556c90340 <qt_meta_data_SingleApplication>, static_metacall = 0x555557639edc <SingleApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = 0x555557723d30}
parser = {d = 0x555557726140}
debugOption = {d = {d = 0x555557729400}}
configName = {d = {d = 0x555557729540}}
settings = {d = 0x555557787ca0, value = 0x555557718e10}
font = {d = {d = 0x5555576a6020}, resolve_mask = 2}
userFontFamily = {d = 0x55555775d020}
qtTranslator = {<QObject> = {_vptr.QObject = 0x7ffff485e390 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff478e020 <qt_meta_stringdata_QObject>, data = 0x7ffff478df00 <qt_meta_data_QObject>, static_metacall = 0x7ffff45f98d0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55555780a060}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff4790fc0 <qt_meta_stringdata_Qt>, data = 0x7ffff478e140 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff4855140 <QObject::staticMetaObject>}, stringdata = 0x7ffff479da20 <qt_meta_stringdata_QTranslator>, data = 0x7ffff479d9e0 <qt_meta_data_QTranslator>, static_metacall = 0x7ffff45ffda0 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
appTranslator = {<QObject> = {_vptr.QObject = 0x7ffff485e390 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff478e020 <qt_meta_stringdata_QObject>, data = 0x7ffff478df00 <qt_meta_data_QObject>, static_metacall = 0x7ffff45f98d0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5555577f9b20}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff4790fc0 <qt_meta_stringdata_Qt>, data = 0x7ffff478e140 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff4855140 <QObject::staticMetaObject>}, stringdata = 0x7ffff479da20 <qt_meta_stringdata_QTranslator>, data = 0x7ffff479d9e0 <qt_meta_data_QTranslator>, static_metacall = 0x7ffff45ffda0 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
w = {<QQuickView> = {<QQuickWindow> = {<QWindow> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff50c4300 <QWindow::staticMetaObject>}, stringdata = 0x7ffff60e8c80 <qt_meta_stringdata_QQuickWindow>, data = 0x7ffff60e8840 <qt_meta_data_QQuickWindow>, static_metacall = 0x7ffff5f1b510 <QQuickWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff61f48e0 <QQuickWindow::staticMetaObject>}, stringdata = 0x7ffff60fa160 <qt_meta_stringdata_QQuickView>, data = 0x7ffff60f9fe0 <qt_meta_data_QQuickView>, static_metacall = 0x7ffff5f8bbb0 <QQuickView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff61f7a00 <QQuickView::staticMetaObject>}, stringdata = 0x555556a4c3c0 <qt_meta_stringdata_MainWindow>, data = 0x555556a4c6c0 <qt_meta_data_MainWindow>, static_metacall = 0x555556fe0634 <MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, welcome_page_ = 0x7fffef2176f8, register_page_ = 0x7ffff433d888, chat_page_ = 0x5555577dbd70, userSettings_ = {value = 0x555557718e10, d = 0x555557787ca0}, trayIcon_ = 0x5555589932f0, dock_ = 0x5555588dea60, imgProvider = 0x555557b62380, roomWindows_ = {<QHash<QString, QWindow*>> = {{d = 0x7ffff46ab560 <QHashData::shared_null>, e = 0x7ffff46ab560 <QHashData::shared_null>}}, <No data fields>}, dbusAvailable_ = false}
uriConnection = {d_ptr = 0x0}
I do this all the time and never had it crash. Did you close Nheko during login before?
I have no idea on this one. It looks like the env is null, but I have no idea, how it got there!