-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ASSERT: "oldMarker > newMarker" in file libquotient/lib/eventstats.cpp, line 59 #588
Comments
Somehow I cannot reproduce this in Quaternion, although the stack is clearly about Quotient... No matter which server I try. |
I'm testing Quaternion since a couple of days, and when I tried to start it today, I've got this assertion today, too:
FWIW, I compiled libQuotient on my own from git, using commit e20f13f , and Quaternion using commit 0315b395584b184caf, using clang version 14.0.6 on RHEL 8. My backtrace taken with gdb looks like this:
Any ideas how to debug / fix this? |
Sorry, this slipped through the cracks. The stack trace looks materially identical to the one originally posted; thanks for confirming it's not a one-off. As to the way of debugging it - the state of variables (especially where |
After working around the crash three weeks ago, I wasn't able to reproduce it anymore. But if it happens again, I'll try to get the values that you requested. |
One more stacktrace with the same root cause, it seems: https://bugs.kde.org/show_bug.cgi?id=469089 |
I get the crash too on Neochat master branch: Application: NeoChat (neochat), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5 0x00007fa0536b0844 in __pthread_kill_implementation () at /lib64/libc.so.6
#6 0x00007fa05365fabe in raise () at /lib64/libc.so.6
#7 0x00007fa05364887f in abort () at /lib64/libc.so.6
#8 0x00000000006ae569 in messageHandler(QtMsgType, QMessageLogContext const&, QString const&) (type=QtFatalMsg, context=..., message=...) at /home/akseli/Repositories/kde/src/neochat/src/logger.cpp:186
#9 0x00007fa053cecbd8 in qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt5Core.so.5
#10 0x00007fa053ceccfe in qt_message(QtMsgType, QMessageLogContext const&, char const*, __va_list_tag*) () at /lib64/libQt5Core.so.5
#11 0x00007fa053cb186d in QMessageLogger::fatal(char const*, ...) const () at /lib64/libQt5Core.so.5
#12 0x00007fa053cb09f5 in qt_assert_x(char const*, char const*, char const*, int) () at /lib64/libQt5Core.so.5
#13 0x00007fa05674d787 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&) (this=0x426c590, room=0x41b9730, oldMarker=..., newMarker=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/eventstats.cpp:58
#14 0x00007fa0566ed57f in Quotient::Room::Private::setLocalLastReadReceipt(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, Quotient::ReadReceipt, bool) (this=0x426c450, newMarker=..., newReceipt=..., deferStatsUpdate=false) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:775
#15 0x00007fa0566ee93c in Quotient::Room::Private::setFullyReadMarker(QString const&) (this=0x426c450, eventId=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:897
#16 0x00007fa0566ef0bf in Quotient::Room::Private::markMessagesAsRead(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&) (this=0x426c450, upToMarker=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:933
#17 0x00007fa0566ef33a in Quotient::Room::markAllMessagesAsRead() (this=0x41b9730) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:957
#18 0x00007fa0566e6ba6 in Quotient::Room::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x41b9730, _c=QMetaObject::InvokeMetaMethod, _id=97, _a=0x7fff54265670) at /home/akseli/Repositories/kde/build/libquotient/Quotient_autogen/include/moc_room.cpp:1197
#19 0x00007fa0566ea018 in Quotient::Room::qt_metacall(QMetaObject::Call, int, void**) (this=0x41b9730, _c=QMetaObject::InvokeMetaMethod, _id=97, _a=0x7fff54265670) at /home/akseli/Repositories/kde/build/libquotient/Quotient_autogen/include/moc_room.cpp:1857
#20 0x0000000000472866 in NeoChatRoom::qt_metacall(QMetaObject::Call, int, void**) (this=0x41b9730, _c=QMetaObject::InvokeMetaMethod, _id=102, _a=0x7fff54265670) at /home/akseli/Repositories/kde/build/neochat/src/neochat_autogen/EWIEGA46WW/moc_neochatroom.cpp:1188
#21 0x00007fa056cf444a in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /lib64/libQt5Qml.so.5
#22 0x00007fa056bc5b70 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /lib64/libQt5Qml.so.5
#23 0x00007fa056bc8e02 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /lib64/libQt5Qml.so.5
#24 0x00007fa056bf9841 in QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value const&, unsigned int, QV4::Value*, int) () at /lib64/libQt5Qml.so.5
#25 0x00007fa00ecc3c56 in ()
#26 0x0000000000000000 in ()
[Inferior 1 (process 69768) detached] Another: Application: NeoChat (neochat), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5 0x00007fb8e7cb0844 in __pthread_kill_implementation () at /lib64/libc.so.6
#6 0x00007fb8e7c5fabe in raise () at /lib64/libc.so.6
#7 0x00007fb8e7c4887f in abort () at /lib64/libc.so.6
#8 0x00000000006b225d in messageHandler(QtMsgType, QMessageLogContext const&, QString const&) (type=QtFatalMsg, context=..., message=...) at /home/akseli/Repositories/kde/src/neochat/src/logger.cpp:186
#9 0x00007fb8e82ecbd8 in qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt5Core.so.5
#10 0x00007fb8e82eccfe in qt_message(QtMsgType, QMessageLogContext const&, char const*, __va_list_tag*) () at /lib64/libQt5Core.so.5
#11 0x00007fb8e82b186d in QMessageLogger::fatal(char const*, ...) const () at /lib64/libQt5Core.so.5
#12 0x00007fb8e82b09f5 in qt_assert_x(char const*, char const*, char const*, int) () at /lib64/libQt5Core.so.5
#13 0x00007fb8eab4e523 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&) (this=0x2cb68b0, room=0x2cb4230, oldMarker=..., newMarker=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/eventstats.cpp:58
#14 0x00007fb8eaaed98b in Quotient::Room::Private::setLocalLastReadReceipt(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&, Quotient::ReadReceipt, bool) (this=0x2cb6770, newMarker=..., newReceipt=..., deferStatsUpdate=false) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:775
#15 0x00007fb8eaaeed48 in Quotient::Room::Private::setFullyReadMarker(QString const&) (this=0x2cb6770, eventId=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:897
#16 0x00007fb8eaaef4cb in Quotient::Room::Private::markMessagesAsRead(std::reverse_iterator<std::_Deque_iterator<Quotient::TimelineItem, Quotient::TimelineItem const&, Quotient::TimelineItem const*> > const&) (this=0x2cb6770, upToMarker=...) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:933
#17 0x00007fb8eaaef746 in Quotient::Room::markAllMessagesAsRead() (this=0x2cb4230) at /home/akseli/Repositories/kde/src/libquotient/Quotient/room.cpp:957
#18 0x00007fb8eaae6fb2 in Quotient::Room::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x2cb4230, _c=QMetaObject::InvokeMetaMethod, _id=97, _a=0x7fffd9a04c50) at /home/akseli/Repositories/kde/build/libquotient/Quotient_autogen/include/moc_room.cpp:1197
#19 0x00007fb8eaaea424 in Quotient::Room::qt_metacall(QMetaObject::Call, int, void**) (this=0x2cb4230, _c=QMetaObject::InvokeMetaMethod, _id=97, _a=0x7fffd9a04c50) at /home/akseli/Repositories/kde/build/libquotient/Quotient_autogen/include/moc_room.cpp:1857
#20 0x0000000000472e1c in NeoChatRoom::qt_metacall(QMetaObject::Call, int, void**) (this=0x2cb4230, _c=QMetaObject::InvokeMetaMethod, _id=102, _a=0x7fffd9a04c50) at /home/akseli/Repositories/kde/build/neochat/src/neochat_autogen/EWIEGA46WW/moc_neochatroom.cpp:1188
#21 0x00007fb8eb0f444a in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /lib64/libQt5Qml.so.5
#22 0x00007fb8eafc5b70 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /lib64/libQt5Qml.so.5
#23 0x00007fb8eafc8e02 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /lib64/libQt5Qml.so.5
#24 0x00007fb8eaff9841 in QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value const&, unsigned int, QV4::Value*, int) () at /lib64/libQt5Qml.so.5
#25 0x00007fb89c033436 in ()
#26 0x0000000000000000 in ()
[Inferior 1 (process 237360) detached] |
Poked around with GDB, not sure if I did it right (especially since I'm using kdesrc-run neochat) I managed to get it to crash in here: libQuotient/Quotient/eventstats.cpp Line 58 in 71b9906
|
@Akselmo - see #588 (comment) |
With quite a few assumptions while analysing the code, it looks like I planned to remove that (and |
They were deprecated since 0.7 and now seem to break unread counts logic implemented in 0.7 (see #588).
To Reproduce
Steps to reproduce the behaviour, and the description of the actual result:
Is it environment-specific?
The text was updated successfully, but these errors were encountered: