https://bugs.kde.org/show_bug.cgi?id=442822
Bug ID: 442822 Summary: intermittent kded5 crash Product: KScreen Version: 5.22.4 Platform: Kubuntu Packages OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: common Assignee: kscreen-bugs-n...@kde.org Reporter: rmur...@cyberhqz.com Target Milestone: --- SUMMARY kded5 STEPS TO REPRODUCE 1. KSCREEN_BACKEND=qscreen exported via .config/plasma-workspace/env/kscreen.sh 2. NVIDIA driver with 3 displays configured as: Option "metamodes" "DP-0: nvidia-auto-select +2160+1240, DP-4: nvidia-auto-select +6000+1422 {AllowGSYNCCompatible=On}, DP-2: nvidia-auto-select +0+0 {rotation=left}" DP-0 is 144hz, the other two are 60hz, one of which is rotated left. 3. have option "nvidiaXineramaInfoOrder" "DFP-1" in the X config OBSERVED RESULT I get intermittent groupings of this crash when DFP-1 is listed first in XineramaInfoOrder. It goes away if set to DFP-5 (the non-rotated 60hz). However, that config causes fullscreen games to want to render at 144hz to the 60hz display. Application: kded5 (kded5), signal: Segmentation fault Content of s_kcrashErrorMessage: [Current thread is 1 (LWP 30030)] [KCrash Handler] #6 QString::QString(QString const&) (other=Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x10: #7 KScreen::Mode::id() const (this=this@entry=0x0) at ./src/mode.cpp:57 #8 0x00007f0c542e2597 in Generator::cloneScreens(QMap<int, QSharedPointer<KScreen::Output> >&) (this=this@entry=0x55cbc8022410, connectedOutputs=...) at ./kded/generator.cpp:323 #9 0x00007f0c542e3f4e in Generator::fallbackIfNeeded(QSharedPointer<KScreen::Config> const&) (this=0x55cbc8022410, config=...) at ./kded/generator.cpp:135 #10 0x00007f0c542d7e80 in Generator::idealConfig(QSharedPointer<KScreen::Config> const&) (currentConfig=<optimized out>, currentConfig=<optimized out>, this=<optimized out>) at ./kded/generator.cpp:115 #11 KScreenDaemon::applyIdealConfig() (this=<optimized out>) at ./kded/daemon.cpp:297 #12 0x00007f0c542dbe77 in KScreenDaemon::applyConfig() (this=<optimized out>) at ./kded/daemon.cpp:219 #13 0x00007f0c542dc160 in operator() (__closure=0x55cbc7bc8bf0) at ./kded/daemon.cpp:125 #14 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KScreenDaemon::init()::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146 #15 QtPrivate::Functor<KScreenDaemon::init()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256 #16 QtPrivate::QFunctorSlotObject<KScreenDaemon::init()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55cbc7bc8be0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443 #17 0x00007f0c6398e5c7 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc7ee14b40, r=0x55cbc7ed6e20, this=0x55cbc7bc8be0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #18 doActivate<false>(QObject*, int, void**) (sender=0x55cbc8022410, signal_index=3, argv=0x7ffc7ee14b40) at kernel/qobject.cpp:3886 #19 0x00007f0c6398e5c7 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc7ee14c20, r=0x55cbc8022410, this=0x55cbc8143170) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #20 doActivate<false>(QObject*, int, void**) (sender=0x55cbc8107cd0, signal_index=3, argv=0x7ffc7ee14c20, argv@entry=0x0) at kernel/qobject.cpp:3886 #21 0x00007f0c63987728 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55cbc8107cd0, m=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3946 #22 0x00007f0c542e5f91 in Device::ready() (this=0x55cbc8107cd0) at ./obj-x86_64-linux-gnu/kded/kscreen_autogen/EWIEGA46WW/moc_device.cpp:186 #23 Device::setReady() (this=0x55cbc8107cd0) at ./kded/device.cpp:97 #24 Device::isLaptopFetched(QDBusPendingCallWatcher*) (this=0x55cbc8107cd0, watcher=0x55cbc7f37bd0) at ./kded/device.cpp:139 #25 0x00007f0c6398e5c7 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc7ee14e10, r=0x55cbc8107cd0, this=0x55cbc80d2b60) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #26 doActivate<false>(QObject*, int, void**) (sender=0x55cbc7f37bd0, signal_index=3, argv=argv@entry=0x7ffc7ee14e10) at kernel/qobject.cpp:3886 #27 0x00007f0c63987728 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f0c63d2f5e0 <QDBusPendingCallWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc7ee14e10) at kernel/qobject.cpp:3946 #28 0x00007f0c63d0ff73 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:158 #29 0x00007f0c6398410c in QObject::event(QEvent*) (this=0x55cbc7f37bd0, e=0x55cbc80d54d0) at kernel/qobject.cpp:1314 #30 0x00007f0c64696783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55cbc7f37bd0, e=0x55cbc80d54d0) at kernel/qapplication.cpp:3632 #31 0x00007f0c639567ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55cbc7f37bd0, event=0x55cbc80d54d0) at kernel/qcoreapplication.cpp:1063 #32 0x00007f0c639597e1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55cbc7a3e6f0) at kernel/qcoreapplication.cpp:1817 #33 0x00007f0c639b0ba7 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55cbc7bf67a0) at kernel/qeventdispatcher_glib.cpp:277 #34 0x00007f0c6255e8eb in g_main_dispatch (context=0x7f0c58005000) at ../../../glib/gmain.c:3337 #35 g_main_context_dispatch (context=0x7f0c58005000) at ../../../glib/gmain.c:4055 #36 0x00007f0c625b1d28 in g_main_context_iterate.constprop.0 (context=context@entry=0x7f0c58005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4131 #37 0x00007f0c6255c023 in g_main_context_iteration (context=0x7f0c58005000, may_block=may_block@entry=1) at ../../../glib/gmain.c:4196 #38 0x00007f0c639b0204 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55cbc7c0c430, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #39 0x00007f0c6395511b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc7ee151e0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #40 0x00007f0c6395d604 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #41 0x00007f0c63ed4520 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867 #42 0x00007f0c646966f9 in QApplication::exec() () at kernel/qapplication.cpp:2824 #43 0x000055cbc5ab1ede in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/kded.cpp:782 [Inferior 1 (process 30030) detached] SOFTWARE/OS VERSIONS Linux/KDE Plasma: Kubuntu 21.04, w/ kubuntu-ppa backports (available in About System) KDE Plasma Version: 5.22.5 KDE Frameworks Version: 5.86.0 Qt Version: 5.15.2 ADDITIONAL INFORMATION I switched to the qscreen backend years ago when I was using the nvidia driver to scale on 2 4x3 monitors to line up with a 4k display. Otherwise, the rw nature of the default backend would cause any unsupported features from the X config (like scaling at the time, and rotation until the recent changes) to be lost on the first write. -- You are receiving this mail because: You are watching all bug changes.