Bug 472805 - Neochat crash on start
Summary: Neochat crash on start
Status: RESOLVED UPSTREAM
Alias: None
Product: NeoChat
Classification: Applications
Component: General (show other bugs)
Version: 23.04.3
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Tobias Fella
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-07-30 16:45 UTC by Hirad
Modified: 2023-07-31 17:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hirad 2023-07-30 16:45:06 UTC
Application: neochat (23.04.3)

Qt Version: 5.15.10
Frameworks Version: 5.108.0
Operating System: Linux 6.4.7-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.27.6 [KCrashBackend]

-- Information about the crash:
Neochat crashes every time opening it. List of chats appear just for a moment.

The crash can be reproduced every time.

-- Backtrace:
Application: NeoChat (neochat), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order::relaxed, this=0x0) at /usr/include/c++/13.1.1/bits/atomic_base.h:503
#7  QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=<error reading variable: Cannot access memory at address 0x0>) at /usr/include/qt/QtCore/qatomic_cxx11.h:239
#8  QBasicAtomicInteger<int>::loadRelaxed() const (this=0x0) at /usr/include/qt/QtCore/qbasicatomic.h:107
#9  QtPrivate::RefCount::ref() (this=0x0) at /usr/include/qt/QtCore/qrefcount.h:55
#10 QString::QString(QString const&) (other=..., this=<optimized out>, this=<optimized out>, other=<optimized out>) at /usr/include/qt/QtCore/qstring.h:1094
#11 Quotient::RoomNameEvent::name() const (this=0x5585a4c97670) at /usr/include/Quotient/events/simplestateevents.h:25
#12 operator() (__closure=<optimized out>, e=...) at /usr/src/debug/neochat/neochat-23.04.3/src/neochatroom.cpp:595
#13 Quotient::switchOnType<NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomNameEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomTopicEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomAvatarEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::EncryptionEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCreateEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomPowerLevelsEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StateEventBase&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::PollStartEvent&)>, QString, Quotient::RoomEvent> (fn1=<optimized out>, event=...) at /usr/include/Quotient/events/event.h:654
#14 Quotient::switchOnType<NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCanonicalAliasEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomNameEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomTopicEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomAvatarEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::EncryptionEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCreateEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomPowerLevelsEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StateEventBase&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::PollStartEvent&)>, QString, Quotient::RoomEvent> (fn1=<optimized out>, event=...) at /usr/include/Quotient/events/event.h:655
#15 Quotient::switchOnType<NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomMemberEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCanonicalAliasEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomNameEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomTopicEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomAvatarEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::EncryptionEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCreateEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomPowerLevelsEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StateEventBase&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::PollStartEvent&)>, QString, Quotient::RoomEvent> (fn1=..., event=...) at /usr/include/Quotient/events/event.h:655
#16 Quotient::switchOnType<NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StickerEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomMemberEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCanonicalAliasEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomNameEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomTopicEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomAvatarEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::EncryptionEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCreateEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomPowerLevelsEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StateEventBase&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::PollStartEvent&)>, QString, Quotient::RoomEvent> (fn1=<optimized out>, event=...) at /usr/include/Quotient/events/event.h:655
#17 Quotient::switchOnType<NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomMessageEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StickerEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomMemberEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCanonicalAliasEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomNameEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomTopicEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomAvatarEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::EncryptionEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomCreateEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::RoomPowerLevelsEvent&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::StateEventBase&)>, NeoChatRoom::eventToString(const Quotient::RoomEvent&, Qt::TextFormat, bool) const::<lambda(const Quotient::PollStartEvent&)>, QString, Quotient::RoomEvent> (fn1=..., event=...) at /usr/include/Quotient/events/event.h:655
#18 NeoChatRoom::eventToString(Quotient::RoomEvent const&, Qt::TextFormat, bool) const (this=0x5585a4e00f50, evt=..., format=<optimized out>, stripNewlines=<optimized out>) at /usr/src/debug/neochat/neochat-23.04.3/src/neochatroom.cpp:638
#19 0x00005585a2b22c19 in NeoChatRoom::lastEventToString(Qt::TextFormat, bool) const [clone .constprop.0] (this=0x5585a4e00f50, stripNewlines=stripNewlines@entry=true, format=Qt::PlainText) at /usr/src/debug/neochat/neochat-23.04.3/src/neochatroom.cpp:293
#20 0x00005585a2ad1d76 in RoomListModel::data(QModelIndex const&, int) const (this=<optimized out>, index=<optimized out>, role=<optimized out>) at /usr/src/debug/neochat/neochat-23.04.3/src/models/roomlistmodel.cpp:399
#21 0x00007efe28e8016e in QSortFilterProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=271) at itemmodels/qsortfilterproxymodel.cpp:2294
#22 0x00007efe2a140d25 in QModelIndex::data(int) const (arole=271, this=0x7fff1a8789d0) at /usr/include/qt/QtCore/qabstractitemmodel.h:460
#23 QQmlDMAbstractItemModelData::value(int) const (this=<optimized out>, role=271) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qmlmodels/qqmladaptormodel.cpp:414
#24 0x00007efe2a13ac9b in QQmlDMCachedModelData::metaCall(QMetaObject::Call, int, void**) (this=0x5585a528aaf0, call=<optimized out>, id=<optimized out>, arguments=0x7fff1a878ae0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qmlmodels/qqmladaptormodel.cpp:282
#25 0x00007efe2ab7438c in QQmlPropertyData::readProperty(QObject*, void*) const (property=0x7fff1a878ac0, target=0x5585a528aaf0, this=0x5585a5059278) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:373
#26 loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) (v4=0x5585a39d99c0, object=0x5585a528aaf0, property=...) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:176
#27 0x00007efe2ab7535d in QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*, QQmlPropertyData**) (property=0x0, hasProperty=0x7fff1a878c07, revisionMode=QV4::QObjectWrapper::CheckRevision, name=0x7efdfd5c1570, object=0x5585a528aaf0, qmlContext=0x5585a52c6fb0, engine=0x5585a39d99c0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:388
#28 QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*, QQmlPropertyData**) (engine=0x5585a39d99c0, qmlContext=0x5585a52c6fb0, object=0x5585a528aaf0, name=0x7efdfd5c1570, revisionMode=QV4::QObjectWrapper::CheckRevision, hasProperty=0x7fff1a878c07, property=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:358
#29 0x00007efe2ab580d2 in QV4::QQmlContextWrapper::lookupInParentContextHierarchy(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value*) (l=<optimized out>, engine=0x5585a39d99c0, base=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/jsruntime/qv4qmlcontext.cpp:638
#30 0x00007efdfc00aec9 in  ()
#31 0x00007fff1a878e40 in  ()
#32 0x0000000000000000 in  ()
[Inferior 1 (process 96900) detached]

The reporter indicates this bug may be a duplicate of or related to bug 469023.

Reported using DrKonqi
Comment 1 Andrej Halveland 2023-07-31 16:46:31 UTC
I had the same issue today where Neochat started fine, but sometimes it would crash outright, or sometimes I would have to switch channels a bunch of times and then it would crash.

So just this moment I locally compiled Arch's neochat from PKGBUILD and now it seems to work fine.

To try and compile neochat yourself do this:
Install base-devel and devtools via `sudo pacman -Syu base-devel devtools`
Then clone the neochat PKGBUILD with `pkgctl repo clone neochat`
Now go into that directory with `cd neochat`
And now compile and install neochat with `makepkg -s -i --skipinteg`
Comment 2 Tobias Fella 2023-07-31 17:34:36 UTC
This seems to be an arch bug. as far as i know it has already been reported there.
Comment 3 Andrej Halveland 2023-07-31 17:37:55 UTC
Yeah, I submitted a bug report a moment ago.

https://bugs.archlinux.org/task/79261