Closed Tamaranch closed 1 year ago
It's not premature, thanks!
Get you get logs from the crash, with QT_LOGGING_RULES
having at least quotient.main.debug=true
?
It didn't give anything more with only main
so I put everything:
$ QT_LOGGING_RULES='quotient.*.debug=true' quaternion
quotient.events: "m.tag" -> TagEvent; 1 derived type(s) registered for Event
quotient.events: "m.fully_read" -> ReadMarkerEventImpl; 2 derived type(s) registered for Event
quotient.events: "m.ignored_user_list" -> IgnoredUsersEventImpl; 3 derived type(s) registered for Event
quotient.events: "" -> RoomEvent; 4 derived type(s) registered for Event
quotient.events: "json.contains('state_key')" -> StateEvent; 1 derived type(s) registered for RoomEvent
quotient.events: "m.call.*" -> CallEvent; 2 derived type(s) registered for RoomEvent
quotient.events: "m.call.invite" -> CallInviteEvent; 1 derived type(s) registered for CallEvent
quotient.events: "m.call.candidates" -> CallCandidatesEvent; 2 derived type(s) registered for CallEvent
quotient.events: "m.call.answer" -> CallAnswerEvent; 3 derived type(s) registered for CallEvent
quotient.events: "m.call.hangup" -> CallHangupEvent; 4 derived type(s) registered for CallEvent
quotient.events: "m.room.encrypted" -> EncryptedEvent; 3 derived type(s) registered for RoomEvent
quotient.events: "m.dummy" -> DummyEvent; 5 derived type(s) registered for Event
quotient.events: "m.room_key" -> RoomKeyEvent; 6 derived type(s) registered for Event
quotient.events: "m.room.message" -> RoomMessageEvent; 4 derived type(s) registered for RoomEvent
quotient.events: "m.room.create" -> RoomCreateEvent; 1 derived type(s) registered for StateEvent
quotient.events: "m.room.tombstone" -> RoomTombstoneEvent; 2 derived type(s) registered for StateEvent
quotient.events: "m.room.power_levels" -> RoomPowerLevelsEvent; 3 derived type(s) registered for StateEvent
quotient.events: "m.reaction" -> ReactionEvent; 5 derived type(s) registered for RoomEvent
quotient.events: "m.room.encryption" -> EncryptionEvent; 4 derived type(s) registered for StateEvent
quotient.events: "m.room.member" -> RoomMemberEvent; 5 derived type(s) registered for StateEvent
quotient.events: "m.room.name" -> RoomNameEvent; 6 derived type(s) registered for StateEvent
quotient.events: "m.room.topic" -> RoomTopicEvent; 7 derived type(s) registered for StateEvent
quotient.events: "m.room.pinned_messages" -> RoomPinnedEvent; 8 derived type(s) registered for StateEvent
quotient.events: "m.room.aliases" -> RoomAliasesEvent; 9 derived type(s) registered for StateEvent
quotient.events: "m.room.redaction" -> RedactionEvent; 6 derived type(s) registered for RoomEvent
quotient.events: "m.room.avatar" -> RoomAvatarEvent; 10 derived type(s) registered for StateEvent
quotient.events: "m.room.canonical_alias" -> RoomCanonicalAliasEvent; 11 derived type(s) registered for StateEvent
quotient.events: "m.direct" -> DirectChatEvent; 7 derived type(s) registered for Event
quotient.events: "m.receipt" -> ReceiptEvent; 8 derived type(s) registered for Event
quotient.events: "m.typing" -> TypingEvent; 9 derived type(s) registered for Event
Using application font: "Sans,10,-1,5,50,0,0,0,0,0"
No translations for "qt" at "/usr/share/qt/translations"
No translations for "qtbase" at "/usr/share/qt/translations"
No translations for "qtnetwork" at "/usr/share/qt/translations"
No translations for "qtdeclarative" at "/usr/share/qt/translations"
No translations for "qtmultimedia" at "/usr/share/qt/translations"
No translations for "qtquickcontrols" at "/usr/share/qt/translations"
No translations for "qtquickcontrols2" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt5keychain/translations"
No translations for "qt" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "qtkeychain" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quotient" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quaternion" at "/usr/local/share/Quotient/quaternion/translations"
qml: QML view loaded
qml: Using timeline font: QFont(Sans,10,-1,5,50,0,0,0,0,0)
--- Show time!
Reading the access token from the keychain for XXX
Could not read the access token for XXX from the keychain: Entry not found
Reading the access token from the keychain for XXX
Found an access token for XXX, trying to connect
free(): invalid size
Abandon (core dumped)
Ah, you might be on a slightly older revision of libQuotient because I don't see the log lines I recently added in the AccountRegistry code. Can you cd lib && git checkout dev
and then try it again?
Indeed I was on 2bcdd0d2 where we land after running git clone --recursive
, but apparently switching to dev does not change anything. I'm reposting the full diagnostic just in case:
[lib]$ git log --oneline
bb08585b (HEAD -> dev, origin/dev, origin/HEAD) Room::P::addRelation: ignore repeated relations
386c43c7 Room: drop events from ignored users
3036da38 Connection::isIgnored(QString)
2bcdd0d2 Fix a few Sonar/clang-tidy warnings
$ QT_LOGGING_RULES='quotient.*.debug=true' quaternion
quotient.events: "m.tag" -> TagEvent; 1 derived type(s) registered for Event
quotient.events: "m.fully_read" -> ReadMarkerEventImpl; 2 derived type(s) registered for Event
quotient.events: "m.ignored_user_list" -> IgnoredUsersEventImpl; 3 derived type(s) registered for Event
quotient.events: "" -> RoomEvent; 4 derived type(s) registered for Event
quotient.events: "json.contains('state_key')" -> StateEvent; 1 derived type(s) registered for RoomEvent
quotient.events: "m.call.*" -> CallEvent; 2 derived type(s) registered for RoomEvent
quotient.events: "m.call.invite" -> CallInviteEvent; 1 derived type(s) registered for CallEvent
quotient.events: "m.call.candidates" -> CallCandidatesEvent; 2 derived type(s) registered for CallEvent
quotient.events: "m.call.answer" -> CallAnswerEvent; 3 derived type(s) registered for CallEvent
quotient.events: "m.call.hangup" -> CallHangupEvent; 4 derived type(s) registered for CallEvent
quotient.events: "m.room.encrypted" -> EncryptedEvent; 3 derived type(s) registered for RoomEvent
quotient.events: "m.dummy" -> DummyEvent; 5 derived type(s) registered for Event
quotient.events: "m.room_key" -> RoomKeyEvent; 6 derived type(s) registered for Event
quotient.events: "m.room.message" -> RoomMessageEvent; 4 derived type(s) registered for RoomEvent
quotient.events: "m.room.create" -> RoomCreateEvent; 1 derived type(s) registered for StateEvent
quotient.events: "m.room.tombstone" -> RoomTombstoneEvent; 2 derived type(s) registered for StateEvent
quotient.events: "m.room.power_levels" -> RoomPowerLevelsEvent; 3 derived type(s) registered for StateEvent
quotient.events: "m.reaction" -> ReactionEvent; 5 derived type(s) registered for RoomEvent
quotient.events: "m.room.encryption" -> EncryptionEvent; 4 derived type(s) registered for StateEvent
quotient.events: "m.room.member" -> RoomMemberEvent; 5 derived type(s) registered for StateEvent
quotient.events: "m.room.name" -> RoomNameEvent; 6 derived type(s) registered for StateEvent
quotient.events: "m.room.topic" -> RoomTopicEvent; 7 derived type(s) registered for StateEvent
quotient.events: "m.room.pinned_messages" -> RoomPinnedEvent; 8 derived type(s) registered for StateEvent
quotient.events: "m.room.aliases" -> RoomAliasesEvent; 9 derived type(s) registered for StateEvent
quotient.events: "m.room.redaction" -> RedactionEvent; 6 derived type(s) registered for RoomEvent
quotient.events: "m.room.avatar" -> RoomAvatarEvent; 10 derived type(s) registered for StateEvent
quotient.events: "m.room.canonical_alias" -> RoomCanonicalAliasEvent; 11 derived type(s) registered for StateEvent
quotient.events: "m.direct" -> DirectChatEvent; 7 derived type(s) registered for Event
quotient.events: "m.receipt" -> ReceiptEvent; 8 derived type(s) registered for Event
quotient.events: "m.typing" -> TypingEvent; 9 derived type(s) registered for Event
Using application font: "Sans,10,-1,5,50,0,0,0,0,0"
No translations for "qt" at "/usr/share/qt/translations"
No translations for "qtbase" at "/usr/share/qt/translations"
No translations for "qtnetwork" at "/usr/share/qt/translations"
No translations for "qtdeclarative" at "/usr/share/qt/translations"
No translations for "qtmultimedia" at "/usr/share/qt/translations"
No translations for "qtquickcontrols" at "/usr/share/qt/translations"
No translations for "qtquickcontrols2" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt5keychain/translations"
No translations for "qt" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "qtkeychain" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quotient" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quaternion" at "/usr/local/share/Quotient/quaternion/translations"
qml: QML view loaded
qml: Using timeline font: QFont(Sans,11,-1,5,50,0,0,0,0,0)
--- Show time!
Reading the access token from the keychain for XXX
Could not read the access token for XXX from the keychain: Entry not found
Reading the access token from the keychain for XXX
Found an access token for XXX, trying to connect
double free or corruption (out)
Abandon (core dumped)
Program terminated with signal SIGABRT, Aborted.
#0 0x00007f23ae8a08ec in ?? () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7f23ad3d1880 (LWP 7858))]
(gdb) bt
#0 0x00007f23ae8a08ec in () at /usr/lib/libc.so.6
#1 0x00007f23ae851ea8 in raise () at /usr/lib/libc.so.6
#2 0x00007f23ae83b53d in abort () at /usr/lib/libc.so.6
#3 0x00007f23ae83c29e in () at /usr/lib/libc.so.6
#4 0x00007f23ae8aa657 in () at /usr/lib/libc.so.6
#5 0x00007f23ae8ac7b0 in () at /usr/lib/libc.so.6
#6 0x00007f23ae8aee63 in free () at /usr/lib/libc.so.6
#7 0x00005616a6b921b1 in QTypedArrayData<unsigned short>::deallocate(QArrayData*) (data=0x5616a7360000) at /usr/include/qt/QtCore/qarraydata.h:240
#8 0x00005616a6b9126b in QString::~QString() (this=0x7ffd7cefe080, __in_chrg=<optimized out>) at /usr/include/qt/QtCore/qstring.h:1311
#9 0x00005616a6d18f77 in Quotient::AccountRegistry::get(QString const&) const (this=0x5616a6e71b80 <Quotient::Accounts>, userId=...) at /home/user/Système/Git/Quaternion/lib/lib/accountregistry.cpp:81
#10 0x00005616a6d18edd in Quotient::AccountRegistry::get(QString const&) (this=0x5616a6e71b80 <Quotient::Accounts>, userId=...) at /home/user/Système/Git/Quaternion/lib/lib/accountregistry.cpp:75
#11 0x00005616a6d187e1 in Quotient::AccountRegistry::add(Quotient::Connection*) (this=0x5616a6e71b80 <Quotient::Accounts>, a=0x5616a7c12d80) at /home/user/Système/Git/Quaternion/lib/lib/accountregistry.cpp:17
#12 0x00005616a6bd05c7 in MainWindow::setupConnection(Quotient::AccountSettings const&, QString const&) (this=0x7ffd7cefe9a0, account=..., accessToken=...)
at /home/user/Système/Git/Quaternion/client/mainwindow.cpp:886
#13 0x00005616a6bd0bf2 in MainWindow::invokeLogin() (this=0x7ffd7cefe9a0) at /home/user/Système/Git/Quaternion/client/mainwindow.cpp:919
#14 0x00005616a6bea357 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MainWindow::*)()>::call(void (MainWindow::*)(), MainWindow*, void**)
(f=(void (MainWindow::*)(MainWindow * const)) 0x5616a6bd090e <MainWindow::invokeLogin()>, o=0x7ffd7cefe9a0, arg=0x5616a781f998) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#15 0x00005616a6be8599 in QtPrivate::FunctionPointer<void (MainWindow::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::*)(), MainWindow*, void**)
(f=(void (MainWindow::*)(MainWindow * const)) 0x5616a6bd090e <MainWindow::invokeLogin()>, o=0x7ffd7cefe9a0, arg=0x5616a781f998) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#16 0x00005616a6be6569 in QtPrivate::QSlotObject<void (MainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
(which=1, this_=0x5616a781f4a0, r=0x7ffd7cefe9a0, a=0x5616a781f998, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#17 0x00007f23af0b1bb0 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#18 0x00007f23b0978b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007f23af08df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#20 0x00007f23af08ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#21 0x00007f23af0d4e88 in () at /usr/lib/libQt5Core.so.5
#22 0x00007f23ae72853b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#23 0x00007f23ae785219 in () at /usr/lib/libglib-2.0.so.0
#24 0x00007f23ae7271a2 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#25 0x00007f23af0d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007f23af0866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#27 0x00007f23af091219 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#28 0x00005616a6c69681 in main(int, char**) (argc=1, argv=0x7ffd7cefec58) at /home/user/Système/Git/Quaternion/client/main.cpp:195
Actually, those log lines were added even before 2bcdd0d2 - sorry for you having to go an extra round for nothing. The fact that they don't show up in the logs is quite alarming then. It might be that the Quotient::Accounts
singleton is accessed before being initialised but I don't see why it is happening so far.
Actually it's been a while since git dev stopped working for me, but I didn't report it, thinking that it would be fixed in a future change. It wasn't crashing though (otherwise I would have reported it like here), it just couldn't initialize and was stuck at "--- Show time!"
The last commit that worked for me was 0707954fc80c436fc26120cb570b73edce720ca4. The last set of changes apparently fixed this issue, but now it crashes.
I suppose it was a side-effect of #838, which is exactly what #859 tried to fix - so your thinking was spot on :)
I have just pushed another commit to libQuotient - can you git pull
in lib/
and try once again?
Same except that there are main logs at the beginning now (same backtrace too):
$ QT_LOGGING_RULES='quotient.*.debug=true' quaternion
quotient.main: Account registry created
quotient.events: "m.tag" -> TagEvent; 1 derived type(s) registered for Event
quotient.events: "m.fully_read" -> ReadMarkerEventImpl; 2 derived type(s) registered for Event
quotient.events: "m.ignored_user_list" -> IgnoredUsersEventImpl; 3 derived type(s) registered for Event
quotient.events: "" -> RoomEvent; 4 derived type(s) registered for Event
quotient.events: "json.contains('state_key')" -> StateEvent; 1 derived type(s) registered for RoomEvent
quotient.events: "m.call.*" -> CallEvent; 2 derived type(s) registered for RoomEvent
quotient.events: "m.call.invite" -> CallInviteEvent; 1 derived type(s) registered for CallEvent
quotient.events: "m.call.candidates" -> CallCandidatesEvent; 2 derived type(s) registered for CallEvent
quotient.events: "m.call.answer" -> CallAnswerEvent; 3 derived type(s) registered for CallEvent
quotient.events: "m.call.hangup" -> CallHangupEvent; 4 derived type(s) registered for CallEvent
quotient.events: "m.room.encrypted" -> EncryptedEvent; 3 derived type(s) registered for RoomEvent
quotient.events: "m.dummy" -> DummyEvent; 5 derived type(s) registered for Event
quotient.events: "m.room_key" -> RoomKeyEvent; 6 derived type(s) registered for Event
quotient.events: "m.room.message" -> RoomMessageEvent; 4 derived type(s) registered for RoomEvent
quotient.events: "m.room.create" -> RoomCreateEvent; 1 derived type(s) registered for StateEvent
quotient.events: "m.room.tombstone" -> RoomTombstoneEvent; 2 derived type(s) registered for StateEvent
quotient.events: "m.room.power_levels" -> RoomPowerLevelsEvent; 3 derived type(s) registered for StateEvent
quotient.events: "m.reaction" -> ReactionEvent; 5 derived type(s) registered for RoomEvent
quotient.events: "m.room.encryption" -> EncryptionEvent; 4 derived type(s) registered for StateEvent
quotient.events: "m.room.member" -> RoomMemberEvent; 5 derived type(s) registered for StateEvent
quotient.events: "m.room.name" -> RoomNameEvent; 6 derived type(s) registered for StateEvent
quotient.events: "m.room.topic" -> RoomTopicEvent; 7 derived type(s) registered for StateEvent
quotient.events: "m.room.pinned_messages" -> RoomPinnedEvent; 8 derived type(s) registered for StateEvent
quotient.events: "m.room.aliases" -> RoomAliasesEvent; 9 derived type(s) registered for StateEvent
quotient.events: "m.room.redaction" -> RedactionEvent; 6 derived type(s) registered for RoomEvent
quotient.events: "m.room.avatar" -> RoomAvatarEvent; 10 derived type(s) registered for StateEvent
quotient.events: "m.room.canonical_alias" -> RoomCanonicalAliasEvent; 11 derived type(s) registered for StateEvent
quotient.events: "m.direct" -> DirectChatEvent; 7 derived type(s) registered for Event
quotient.events: "m.receipt" -> ReceiptEvent; 8 derived type(s) registered for Event
quotient.events: "m.typing" -> TypingEvent; 9 derived type(s) registered for Event
Using application font: "Sans,10,-1,5,50,0,0,0,0,0"
No translations for "qt" at "/usr/share/qt/translations"
No translations for "qtbase" at "/usr/share/qt/translations"
No translations for "qtnetwork" at "/usr/share/qt/translations"
No translations for "qtdeclarative" at "/usr/share/qt/translations"
No translations for "qtmultimedia" at "/usr/share/qt/translations"
No translations for "qtquickcontrols" at "/usr/share/qt/translations"
No translations for "qtquickcontrols2" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt/translations"
No translations for "qtkeychain" at "/usr/share/qt5keychain/translations"
No translations for "qt" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "qtkeychain" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quotient" at "/usr/local/share/Quotient/quaternion/translations"
No translations for "quaternion" at "/usr/local/share/Quotient/quaternion/translations"
qml: QML view loaded
qml: Using timeline font: QFont(Sans,11,-1,5,50,0,0,0,0,0)
--- Show time!
Reading the access token from the keychain for XXX
Could not read the access token for XXX from the keychain: Entry not found
Reading the access token from the keychain for XXX
Found an access token for XXX, trying to connect
Erreur de segmentation (core dumped)
Yes, that's the line that should have occurred, and it's where it should be, for better or worse.
I've just got another stack trace in https://github.com/quotient-im/libQuotient/issues/637 and I think I know what's happening.
Can you please checkout 2fd65876 in your lib and see if the problem is still there?
Yes git checkout 2fd65876
in lib
fixes the issue :)
Closing this in favour of https://github.com/quotient-im/libQuotient/issues/637 since the bug is apparently in libQuotient and since the current dev
(assuming the lib commit the submodule points to) is fine again.
Description
Maybe this is a bit of a premature report as the latest changes are very recent, but I'd rather do it just in case:
Console output:
Backtrace:
Version information
cd build && cmake .. && cd .. && cmake --build build --target all && sudo make install