Bug 429626 - Crashes when changing refresh rate of non-enabled monitor.
Summary: Crashes when changing refresh rate of non-enabled monitor.
Status: RESOLVED WORKSFORME
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_kscreen (show other bugs)
Version: 5.19.5
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: kscreen-bugs-null@kde.org
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-11-25 08:39 UTC by iGadget
Modified: 2022-11-18 17:15 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (6.54 KB, text/plain)
2021-04-20 15:26 UTC, Alex
Details
New crash information added by DrKonqi (8.86 KB, text/plain)
2021-12-27 13:59 UTC, TraceyC
Details

Note You need to log in before you can comment on or make changes to this bug.
Description iGadget 2020-11-25 08:39:30 UTC
Application: systemsettings5 (5.19.5)

Qt Version: 5.14.2
Frameworks Version: 5.74.0
Operating System: Linux 5.8.0-29-lowlatency x86_64
Windowing system: X11
Distribution: Ubuntu 20.10

-- Information about the crash:
- What I was doing when the application crashed:
Set the refresh rate of my hdmi-connected (not yet enabled) second monitor from 24Hz to 30Hz.

- Unusual behavior I noticed:
When the second monitor was automatically enabled at boot, the exact right half of the screen was completely distorted. That's why I started changing refresh rates and trying to disable / enable the monitor, to see if that made any difference. Before I could finish, I ran into this crash.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault

[KCrash Handler]
#4  KScreen::Mode::size (this=this@entry=0x0) at ./src/mode.cpp:102
#5  0x00007feee828da82 in operator() (mode=..., __closure=<optimized out>) at ./kcm/output_model.cpp:373
#6  __gnu_cxx::__ops::_Iter_pred<OutputModel::setRefreshRate(int, int)::<lambda(const ModePtr&)> >::operator()<QMap<QString, QSharedPointer<KScreen::Mode> >::const_iterator> (__it=..., this=<optimized out>) at /usr/include/c++/10/bits/predefined_ops.h:316
#7  std::__find_if<QMap<QString, QSharedPointer<KScreen::Mode> >::const_iterator, __gnu_cxx::__ops::_Iter_pred<OutputModel::setRefreshRate(int, int)::<lambda(const ModePtr&)> > > (__pred=..., __last=..., __first=...) at /usr/include/c++/10/bits/stl_algobase.h:1915
#8  std::__find_if<QMap<QString, QSharedPointer<KScreen::Mode> >::const_iterator, __gnu_cxx::__ops::_Iter_pred<OutputModel::setRefreshRate(int, int)::<lambda(const ModePtr&)> > > (__pred=..., __last=..., __first=...) at /usr/include/c++/10/bits/stl_algobase.h:1977
#9  std::find_if<QMap<QString, QSharedPointer<KScreen::Mode> >::const_iterator, OutputModel::setRefreshRate(int, int)::<lambda(const ModePtr&)> > (__pred=..., __last=..., __first=...) at /usr/include/c++/10/bits/stl_algo.h:3928
#10 OutputModel::setRefreshRate (this=0x55a72f287aa0, outputIndex=1, refIndex=<optimized out>) at ./kcm/output_model.cpp:375
#11 0x00007fef387290fd in QQmlDMAbstractItemModelData::setValue (value=..., role=269, this=0x55a72f289a80) at qqmladaptormodel.cpp:419
#12 QQmlDMCachedModelData::metaCall (this=0x55a72f289a80, call=<optimized out>, id=<optimized out>, arguments=<optimized out>) at qqmladaptormodel.cpp:296
#13 0x00007fef39c2c520 in QQmlPropertyData::writeProperty (flags=..., value=0x7ffe2608c5d0, target=0x55a72f289a80, this=0x55a72df0cad8) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:290
#14 QQmlPropertyPrivate::write (object=0x55a72f289a80, property=..., value=..., context=<optimized out>, flags=...) at qml/qqmlproperty.cpp:1305
#15 0x00007fef39b6439b in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h:119
#16 0x00007fef39b64db7 in QV4::QObjectWrapper::setQmlProperty (engine=0x55a72ebba0a0, qmlContext=<optimized out>, object=0x55a72f289a80, name=<optimized out>, revisionMode=QV4::QObjectWrapper::IgnoreRevision, value=...) at jsruntime/qv4qobjectwrapper.cpp:435
#17 0x00007fef39b64f55 in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) () at /usr/include/c++/10/bits/atomic_base.h:420
#18 0x00007fef39b30dab in QV4::Object::put (receiver=0x7feed44f2550, v=..., id=..., this=0x7feed44f2550) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/memory/qv4heap_p.h:82
#19 QV4::Object::virtualResolveLookupSetter (object=0x7feed44f2550, engine=0x55a72ebba0a0, lookup=0x55a72f290210, value=...) at jsruntime/qv4object.cpp:804
#20 0x00007fef39b7d178 in QV4::Moth::VME::interpret (frame=0x7ffe2608c970, engine=0x55a72ebba0a0, code=0x7feee814de21 "\016\002") at jsruntime/qv4vme_moth.cpp:653
#21 0x00007fef39b810b7 in QV4::Moth::VME::exec (frame=frame@entry=0x7ffe2608c970, engine=engine@entry=0x55a72ebba0a0) at jsruntime/qv4vme_moth.cpp:463
#22 0x00007fef39b1e08d in QV4::Function::call (this=this@entry=0x55a72f28b2a0, thisObject=<optimized out>, argv=argv@entry=0x7feed44f2508, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69
#23 0x00007fef39c84a15 in QQmlJavaScriptExpression::evaluate (this=this@entry=0x55a72f504e40, callData=callData@entry=0x7feed44f24d8, isUndefined=isUndefined@entry=0x0) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/jsruntime/qv4value_p.h:343
#24 0x00007fef39c3c07b in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:95
#25 0x00007fef39c3c558 in QQmlBoundSignal_callback (e=0x55a72f4fefc0, a=0x7ffe2608e5e0) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#26 0x00007fef39c6a67d in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7ffe2608e5e0) at qml/qqmlnotifier.cpp:104
#27 0x00007fef3ac3be75 in doActivate<false> (sender=0x55a72f4dd700, signal_index=61, argv=argv@entry=0x7ffe2608e5e0) at kernel/qobject_p.h:110
#28 0x00007fef3ac36068 in QMetaObject::activate (sender=sender@entry=0x55a72f4dd700, m=m@entry=0x7fef34be4ae0 <QQuickComboBox::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe2608e5e0) at kernel/qobject.cpp:3930
#29 0x00007fef34b7dd92 in QQuickComboBox::activated (this=this@entry=0x55a72f4dd700, _t1=<optimized out>) at .moc/moc_qquickcombobox_p.cpp:740
#30 0x00007fef34b08340 in QQuickComboBoxPrivate::hidePopup (this=0x55a72f4dd7c0, accept=<optimized out>) at qquickcombobox.cpp:323
#31 0x00007fef3ac3c2e6 in QtPrivate::QSlotObjectBase::call (a=0x7ffe2608e6c0, r=0x55a72f4dd700, this=0x55a72f73e630) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#32 doActivate<false> (sender=0x55a72f734d50, signal_index=64, argv=0x7ffe2608e6c0) at kernel/qobject.cpp:3870
#33 0x00007fef34af8531 in QQuickAbstractButtonPrivate::handleRelease (this=0x55a72f9254b0, point=...) at qquickabstractbutton.cpp:180
#34 0x00007fef34b169a9 in QQuickControl::mouseReleaseEvent (this=<optimized out>, event=0x7ffe2608ea70) at /usr/include/x86_64-linux-gnu/qt5/QtGui/qevent.h:128
#35 0x00007fef3a062388 in QQuickItem::event (this=0x55a72f734d50, ev=0x7ffe2608ea70) at items/qquickitem.cpp:8095
#36 0x00007fef3b748013 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a72f734d50, e=0x7ffe2608ea70) at kernel/qapplication.cpp:3685
#37 0x00007fef3ac061ca in QCoreApplication::notifyInternal2 (receiver=0x55a72f734d50, event=0x7ffe2608ea70) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#38 0x00007fef3a07cc34 in QQuickWindowPrivate::deliverMouseEvent (this=this@entry=0x55a72eea0b30, pointerEvent=0x55a72f817e70) at items/qquickwindow.cpp:1891
#39 0x00007fef3a07df6b in QQuickWindowPrivate::deliverPointerEvent (this=0x55a72eea0b30, event=0x55a72f817e70) at items/qquickwindow.cpp:2454
#40 0x00007fef3b06d7c5 in QWindow::event (this=0x55a72eb9b3c0, ev=<optimized out>) at kernel/qwindow.cpp:2363
#41 0x00007fef3b748013 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a72eb9b3c0, e=0x7ffe2608ea70) at kernel/qapplication.cpp:3685
#42 0x00007fef3ac061ca in QCoreApplication::notifyInternal2 (receiver=0x55a72eb9b3c0, event=0x7ffe2608ea70) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#43 0x00007fef3a38f9fb in QQuickWidget::mouseReleaseEvent (this=<optimized out>, e=0x7ffe2608efe0) at qquickwidget.cpp:1398
#44 0x00007fef3b78930e in QWidget::event (this=0x55a72ee9cfe0, event=0x7ffe2608efe0) at kernel/qwidget.cpp:9033
#45 0x00007fef3b748013 in QApplicationPrivate::notify_helper (this=this@entry=0x55a72d496990, receiver=receiver@entry=0x55a72ee9cfe0, e=e@entry=0x7ffe2608efe0) at kernel/qapplication.cpp:3685
#46 0x00007fef3b74d841 in QApplication::notify (this=0x7ffe2608ecf0, receiver=0x55a72ee9cfe0, e=0x7ffe2608efe0) at kernel/qapplication.cpp:3129
#47 0x00007fef3ac061ca in QCoreApplication::notifyInternal2 (receiver=0x55a72ee9cfe0, event=0x7ffe2608efe0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#48 0x00007fef3b74c73a in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55a72ee9cfe0, event=event@entry=0x7ffe2608efe0, alienWidget=alienWidget@entry=0x55a72ee9cfe0, nativeWidget=0x55a72d760bd0, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2615
#49 0x00007fef3b7a1f32 in QWidgetWindow::handleMouseEvent (this=0x55a72d854040, event=0x7ffe2608f2a0) at /usr/include/c++/10/bits/atomic_base.h:420
#50 0x00007fef3b7a4d8e in QWidgetWindow::event (this=0x55a72d854040, event=0x7ffe2608f2a0) at kernel/qwidgetwindow.cpp:295
#51 0x00007fef3b748013 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a72d854040, e=0x7ffe2608f2a0) at kernel/qapplication.cpp:3685
#52 0x00007fef3ac061ca in QCoreApplication::notifyInternal2 (receiver=0x55a72d854040, event=0x7ffe2608f2a0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#53 0x00007fef3b06148b in QGuiApplicationPrivate::processMouseEvent (e=0x55a72f726a30) at kernel/qguiapplication.cpp:2203
#54 0x00007fef3b0372bb in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1170
#55 0x00007fef35e9a35e in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#56 0x00007fef389504db in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007fef38950788 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 0x00007fef38950853 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007fef3ac5d843 in QEventDispatcherGlib::processEvents (this=0x55a72d5110d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#60 0x00007fef3ac04a4b in QEventLoop::exec (this=this@entry=0x7ffe2608f5d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
#61 0x00007fef3ac0cfc6 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:118
#62 0x000055a72ba5c0bf in main (argc=<optimized out>, argv=0x7ffe2608f6f0) at ./app/main.cpp:168
[Inferior 1 (process 14156) detached]

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

Possible duplicates by query: bug 429420, bug 429267, bug 429111, bug 429023, bug 428879.

Reported using DrKonqi
Comment 1 Alex 2021-04-20 15:26:51 UTC
Created attachment 137730 [details]
New crash information added by DrKonqi

systemsettings5 (5.21.4) using Qt 5.15.2

- What I was doing when the application crashed:

Changing refresh rate of a disabled monitor.

- Unusual behavior I noticed:

Having issues where nvidia graphics will "mirror" my display across both my monitors and things go down hill from there.

-- Backtrace (Reduced):
#4  0x00007f48f89f2ab0 in KScreen::Mode::size() const () from /usr/lib64/libKF5Screen.so.7
#5  0x00007f48f8a91319 in OutputModel::setRefreshRate(int, int) () from /usr/lib64/qt5/plugins/kcms/kcm_kscreen.so
#6  0x00007f48fddef45d in QQmlDMCachedModelData::metaCall(QMetaObject::Call, int, void**) () from /usr/lib64/libQt5QmlModels.so.5
#7  0x00007f48ff0f5dda in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () from /usr/lib64/libQt5Qml.so.5
#8  0x00007f48ff01e8c0 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () from /usr/lib64/libQt5Qml.so.5
Comment 2 TraceyC 2021-12-27 13:59:22 UTC
Created attachment 144897 [details]
New crash information added by DrKonqi

systemsettings5 (5.23.4) using Qt 5.15.3

- What I was doing when the application crashed:
I had tried to enable a second monitor, but it didn't actually apply / enable. I tried to change the refresh rate of that monitor and the settings crashed.

-- Backtrace (Reduced):
#4  KScreen::Mode::size (this=this@entry=0x0) at /home/build/YPKG/root/libkscreen/build/libkscreen-5.23.4/src/mode.cpp:89
#5  0x00007f72c4112d8c in operator() (mode=..., __closure=<optimized out>) at /home/build/YPKG/root/kscreen/build/kscreen-5.23.4/kcm/output_model.cpp:416
#10 OutputModel::setRefreshRate (refIndex=<optimized out>, outputIndex=0, this=0x1ec75d0) at /home/build/YPKG/root/kscreen/build/kscreen-5.23.4/kcm/output_model.cpp:413
#11 OutputModel::setData (this=0x1ec75d0, index=..., value=..., role=<optimized out>) at /home/build/YPKG/root/kscreen/build/kscreen-5.23.4/kcm/output_model.cpp:136
[...]
#13 0x00007f72fddccfcc in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () from /usr/lib/libQt5Qml.so.5
Comment 3 Nate Graham 2022-11-12 14:39:20 UTC
Thank you for the bug report. Unfortunately we were not able to get to it yet. Can we ask you to please check if this is still an issue with Plasma 5.25 or 5.26?

If it is, please change the status to CONFIRMED when replying. If not, or if you can't because you no longer use this setup, you can change the status to RESOLVED WORKSFORME. Thanks a lot!
Comment 4 TraceyC 2022-11-12 19:14:21 UTC
I can no longer reproduce the crash I reported. I'm no the OP, so I don't want to change the bug status, but I did want to add this information.

Operating System: Solus 4.3
KDE Plasma Version: 5.26.3
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.7
Kernel Version: 5.15.77-219.current (64-bit)
Graphics Platform: X11
Comment 5 Nate Graham 2022-11-14 19:04:29 UTC
Thanks anyway though! Let's wait for iGadget's report since sometimes multimonitor issues with the same symptoms can be driven by different root causes.
Comment 6 iGadget 2022-11-17 18:08:39 UTC
Sorry, can't test this anymore as my setup has changed drastically since I reported this issue almost two years ago. No longer working with 2 monitors and, sorry to say, no longer working with KDE. Working around all the issues just took too much time.
Still believe in KDE's potential however, so I might try again some day. Keep up the good work!
Comment 7 Nate Graham 2022-11-18 17:15:05 UTC
Thanks anyway!