https://bugs.kde.org/show_bug.cgi?id=433064

Lamarque V. Souza <lamar...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lamar...@kde.org

--- Comment #5 from Lamarque V. Souza <lamar...@kde.org> ---
The commit 10d8d20a3bc4016ee271aee234f7727e5640cedc causes a crash in
SensorDataModel::onMetaDataChanged during this call

beginInsertColumns(QModelIndex{}, column, column);

column is calculated using

auto column = d->sensors.indexOf(sensorId);

but since your commit removed this code

for (const auto& sensor : sensors) {
    sensorInfos[sensor] = KSysGuard::SensorInfo();
}

the size of sensors and sensorInfos are not in sync for certain amount of time.

This is backtrace:

[08:07:24.435] unknown: ASSERT: "first <= columnCount(parent)" in file
/var/tmpfs/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/itemmodels/qabstractitemmodel.cpp,
line 3062

Thread 1 "plasmashell" received signal SIGABRT, Aborted.
0x00007ffff5399a21 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff5399a21 in raise () at /lib64/libc.so.6
#1  0x00007ffff5383536 in abort () at /lib64/libc.so.6
#2  0x00007ffff582da8d in qCleanupFuncinfo(QByteArray) [clone .cold] () at
/usr/lib64/libQt5Core.so.5
#3  0x00007ffff582c7f7 in unquote(char const*, char const*) [clone .cold] () at
/usr/lib64/libQt5Core.so.5
#4  0x00007ffff584a81e in QAbstractItemModel::beginInsertColumns(QModelIndex
const&, int, int) [clone .cold] () at /usr/lib64/libQt5Core.so.5
#5  0x00007fffe9950355 in KSysGuard::SensorDataModel::onMetaDataChanged(QString
const&, KSysGuard::SensorInfo const&) () at /usr/lib64/libKSysGuardSensors.so.1
#6  0x00007ffff5a83b5e in void doActivate<false>(QObject*, int, void**) () at
/usr/lib64/libQt5Core.so.5
#7  0x00007fffe994c297 in
KSysGuard::SensorDaemonInterface::metaDataChanged(QString const&,
KSysGuard::SensorInfo const&) () at /usr/lib64/libKSysGuardSensors.so.1
#8  0x00007fffe99655d9 in
QtPrivate::QFunctorSlotObject<KSysGuard::SensorDaemonInterface::requestMetaData(QStringList
const&)::{lambda(QDBusPendingCallWatcher*)#1}, 1,
QtPrivate::List<QDBusPendingCallWatcher*>, void>::impl(int,
QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () at
/usr/lib64/libKSysGuardSensors.so.1
#9  0x00007ffff5a83b5e in void doActivate<false>(QObject*, int, void**) () at
/usr/lib64/libQt5Core.so.5
#10 0x00007ffff6442ccf in
QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () at
/usr/lib64/libQt5DBus.so.5
#11 0x00007ffff6442ddb in QDBusPendingCallWatcher::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) () at /usr/lib64/libQt5DBus.so.5
#12 0x00007ffff5a7aaea in QObject::event(QEvent*) () at
/usr/lib64/libQt5Core.so.5
#13 0x00007ffff6765bbf in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib64/libQt5Widgets.so.5
#14 0x00007ffff676e0c0 in QApplication::notify(QObject*, QEvent*) () at
/usr/lib64/libQt5Widgets.so.5
#15 0x00007ffff5a4c2c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib64/libQt5Core.so.5
#16 0x00007ffff5a4f17c in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#17 0x00007ffff5aa81e3 in postEventSourceDispatch(_GSource*, int (*)(void*),
void*) () at /usr/lib64/libQt5Core.so.5
#18 0x00007ffff3e88ead in g_main_context_dispatch () at
/usr/lib64/libglib-2.0.so.0
#19 0x00007ffff3e89130 in g_main_context_iterate.isra () at
/usr/lib64/libglib-2.0.so.0
#20 0x00007ffff3e891bf in g_main_context_iteration () at
/usr/lib64/libglib-2.0.so.0
#21 0x00007ffff5aa7c2e in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /usr/lib64/libQt5Core.so.5
#22 0x00007ffff5a4ac0b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib64/libQt5Core.so.5
#23 0x00007ffff5a53790 in QCoreApplication::exec() () at
/usr/lib64/libQt5Core.so.5
#24 0x00005555555757fa in main ()

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to