#1070687 systemsettings: received signal SIGSEGV, Segmentation fault

Package:
systemsettings
Source:
systemsettings
Description:
System Settings interface
Submitter:
antonio
Date:
2024-05-20 16:15:02 UTC
Severity:
normal
#1070687#5
Date:
2024-05-07 09:30:41 UTC
From:
To:
Dear Maintainer,
when I try to add a online account (Systemsettings->Pesonalization->Online
Accounts->Add new account... button) I get this error:

Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
0x00007fffc40f8765 in Accounts::Provider::~Provider() () from
/usr/lib/x86_64-linux-gnu/libaccounts-qt5.so.1

where:
libaccounts-qt5-1=1.17-1

console log:
$ systemsettings

file:///usr/lib/x86_64-linux-
gnu/qt5/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding
loop detected for property "width"
file:///usr/lib/x86_64-linux-
gnu/qt5/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding
loop detected for property "width"
kf.runner: KRunner plugin "installer" still uses a .desktop file ("plasma-
runner-installer.desktop"). Please port it to JSON metadata.
file:///usr/lib/x86_64-linux-
gnu/qt5/qml/org/kde/kirigami.2/BasicListItem.qml:288:18: QML QQuickItem*:
Binding loop detected for property "implicitWidth"
QQmlEngine::setContextForObject(): Object already has a QQmlContext
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
QQmlEngine::setContextForObject(): Object already has a QQmlContext
file:///usr/lib/x86_64-linux-
gnu/qt5/qml/org/kde/kirigami.2/templates/OverlaySheet.qml:603:17: QML
ColumnLayout: Binding loop detected for property "height"
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = systemsettings path = /usr/bin pid = 116311
KCrash: Arguments: /usr/bin/systemsettings
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi
QSocketNotifier: Invalid socket 16 and type 'Read', disabling...
QSocketNotifier: Invalid socket 11 and type 'Read', disabling...
kf5idletime_wayland: This plugin does not support polling idle time

Thanks,
Antonio

#1070687#10
Date:
2024-05-20 16:09:58 UTC
From:
To:
Dear Maintainer,
I still can reproduce this with current Trixie/testing [1] [2].

The crash seems to happen because for some reason the member m_tags
contains an invalid pointer 0x1 [3].

With rr-debugger I could record such a crash and reverse execute to
where m_tags got overwritten with this 0x1 [4].

Unfortunately I still cannot tell the exact reason,
because the crash no longer happens with a locally rebuilt
package libkaccounts2.

Therefore, might this be an ABI break?
And could be solved by a binNMU of libkaccounts2?

Kind regards,
Bernhard


[1]
#4  <signal handler called>
#5  0x00007f1fb43a2765 in Accounts::Provider::~Provider() () from /lib/x86_64-linux-gnu/libaccounts-qt5.so.1
#6  0x00007f1fb43bf198 in ProvidersModel::data(QModelIndex const&, int) const () from /lib/x86_64-linux-gnu/libkaccounts.so.2
#7  0x00007f1fce9d44f0 in ?? () from /lib/x86_64-linux-gnu/libQt5QmlModels.so.5


[2]
With debug symbols:
#4  <signal handler called>
#5  std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x1>) at /usr/include/c++/13/bits/atomic_base.h:503
#6  QAtomicOps<int>::loadRelaxed<int> (_q_value=<error reading variable: Cannot access memory at address 0x1>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
#7  QBasicAtomicInteger<int>::loadRelaxed (this=<error reading variable: Cannot access memory at address 0x1>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
#8  QtPrivate::RefCount::deref (this=<error reading variable: Cannot access memory at address 0x1>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:66
#9  QHash<QString, QHashDummyValue>::~QHash (this=0x1, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:250
#10 QSet<QString>::~QSet (this=0x1, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h:53
#11 Accounts::Provider::~Provider (this=<optimized out>, __in_chrg=<optimized out>) at ./Accounts/provider.cpp:93
#12 0x00007f1fb43bf198 in ProvidersModel::data (this=<optimized out>, index=..., role=<optimized out>) at ./src/lib/providersmodel.cpp:105
#13 0x00007f1fce9d44f0 in QModelIndex::data (arole=261, this=0x7ffddfe29ce0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:460


[3]
93              delete m_tags;
(rr) print this
$1 = (Accounts::Provider * const) 0x7ffc316dca20
(rr) print *this
$2 = {m_provider = 0x55b1af209730, m_tags = 0x1}
(rr) print &this->m_tags
$4 = (QSet<QString> **) 0x7ffc316dca28


[4]
(rr) watch *0x7ffc316dca28
Hardware watchpoint 1: *0x7ffc316dca28
(rr) reverse-cont
Continuing.
Thread 1 hit Hardware watchpoint 1: *0x7ffc316dca28
Old value = 1
New value = 0
0x00007f97bc1bc223 in ProvidersModel::data (this=0x55b1af23c460, index=..., role=261) at ./src/lib/providersmodel.cpp:86
86                      data.setValue(!provider.isSingleAccount());
(rr) bt
#0  0x00007f97bc1bc223 in ProvidersModel::data(QModelIndex const&, int) const (this=0x55b1af23c460, index=<optimized out>, role=261) at ./src/lib/providersmodel.cpp:86
#1  0x00007f97c8a6f4f0 in QModelIndex::data(int) const (arole=261, this=0x7ffc316dcac0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:460
#2  QQmlDMAbstractItemModelData::value(int) const (role=261, this=0x55b1af0f5610) at ./src/qmlmodels/qqmladaptormodel.cpp:414
#3  QQmlDMCachedModelData::metaCall(QMetaObject::Call, int, void**) (this=0x55b1af0f5610, call=<optimized out>, id=<optimized out>, arguments=0x7ffc316dcb70) at ./src/qmlmodels/qqmladaptormodel.cpp:282
#4  0x00007f97cada4fd6 in  () at /lib/x86_64-linux-gnu/libQt5Qml.so.5