Bug 453535 - System Settings crashes when I try to apply another cursor theme with double-click
Summary: System Settings crashes when I try to apply another cursor theme with double-...
Status: RESOLVED DUPLICATE of bug 456526
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_cursortheme (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Alexander Lohnau
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-05-08 12:17 UTC by Patrick Silva
Modified: 2022-07-10 22:27 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
only one third-party theme is marked as installed (157.69 KB, image/png)
2022-05-21 14:19 UTC, Patrick Silva
Details
screen recording (3.00 MB, video/webm)
2022-05-21 15:58 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2022-05-08 12:17:40 UTC
Application: systemsettings (5.24.80)

Qt Version: 5.15.3
Frameworks Version: 5.94.0
Operating System: Linux 5.11.0-40-generic x86_64
Windowing System: Wayland
Distribution: KDE neon Unstable Edition
DrKonqi: 5.24.80 [CoredumpBackend]

-- Information about the crash:
open Cursors KCM, try to apply another cursor theme with double-click. System Settings crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[New LWP 22899]
[New LWP 22918]
[New LWP 22921]
[New LWP 22922]
[New LWP 22919]
[New LWP 23025]
[New LWP 22940]
[New LWP 23764]
[New LWP 22941]
[New LWP 22920]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/systemsettings'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI_raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x7fc1349a79c0 (LWP 22899))]
__preamble__

[Current thread is 1 (Thread 0x7fc1349a79c0 (LWP 22899))]

Thread 10 (Thread 0x7fc132c1f700 (LWP 22920)):
#0  0x00007fc1392a99cf in __GI___poll (fds=0x7fc11c015b50, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc137d6536e in g_main_context_poll (priority=<optimized out>, n_fds=4, fds=0x7fc11c015b50, timeout=<optimized out>, context=0x7fc11c000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fc11c000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fc137d654a3 in g_main_context_iteration (context=0x7fc11c000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fc13987c642 in QEventDispatcherGlib::processEvents (this=0x7fc11c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fc13982087b in QEventLoop::exec (this=this@entry=0x7fc132c1ebb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fc13963a442 in QThread::exec (this=this@entry=0x7fc138a0ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fc13898af4b in QDBusConnectionManager::run (this=0x7fc138a0ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007fc13963b623 in QThreadPrivate::start (arg=0x7fc138a0ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:331
#9  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fc10ff74700 (LWP 22941)):
#0  0x00007fc1392a99cf in __GI___poll (fds=0x55df1b3f1c60, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc137d6536e in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x55df1b3f1c60, timeout=<optimized out>, context=0x55df1b3f1d60) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=0x55df1b3f1d60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fc137d656f3 in g_main_loop_run (loop=0x55df1b3f1e20) at ../../../glib/gmain.c:4241
#4  0x00007fc111025f8a in gdbus_shared_thread_func (user_data=0x55df1b853d10) at ../../../gio/gdbusprivate.c:279
#5  0x00007fc137d8ead1 in g_thread_proxy (data=0x55df1ba92180) at ../../../glib/gthread.c:807
#6  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fc129d0c700 (LWP 23764)):
#0  0x00007fc1392a99cf in __GI___poll (fds=0x7fc118107040, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc137d6536e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fc118107040, timeout=<optimized out>, context=0x7fc1182a99a0) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fc1182a99a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fc137d654a3 in g_main_context_iteration (context=0x7fc1182a99a0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fc13987c642 in QEventDispatcherGlib::processEvents (this=0x7fc1184a2760, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fc13982087b in QEventLoop::exec (this=this@entry=0x7fc129d0bbc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fc13963a442 in QThread::exec (this=this@entry=0x55df1b1b0240) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fc1375eeb39 in QQmlThreadPrivate::run (this=0x55df1b1b0240) at qml/ftw/qqmlthread.cpp:155
#8  0x00007fc13963b623 in QThreadPrivate::start (arg=0x55df1b1b0240) at thread/qthread_unix.cpp:331
#9  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fc110ea0700 (LWP 22940)):
#0  0x00007fc1392a99cf in __GI___poll (fds=0x55df1b9379e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc137d6536e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x55df1b9379e0, timeout=<optimized out>, context=0x55df1b1faf60) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x55df1b1faf60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fc137d654a3 in g_main_context_iteration (context=0x55df1b1faf60, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fc137d654f1 in glib_worker_main (data=<optimized out>) at ../../../glib/gmain.c:5996
#5  0x00007fc137d8ead1 in g_thread_proxy (data=0x55df1a912760) at ../../../glib/gthread.c:807
#6  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fc1035ef700 (LWP 23025)):
#0  0x00007fc1392a99cf in __GI___poll (fds=fds@entry=0x7fc0f4007170, nfds=nfds@entry=3, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc129e171d6 in poll (__timeout=-1, __nfds=3, __fds=0x7fc0f4007170) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  poll_func (ufds=0x7fc0f4007170, nfds=3, timeout=-1, userdata=0x55df1fb066f0) at pulse/thread-mainloop.c:70
#3  0x00007fc129e08841 in pa_mainloop_poll (m=m@entry=0x55df1efe3140) at pulse/mainloop.c:824
#4  0x00007fc129e08ec3 in pa_mainloop_iterate (m=0x55df1efe3140, block=<optimized out>, retval=0x0) at pulse/mainloop.c:926
#5  0x00007fc129e08f70 in pa_mainloop_run (m=0x55df1efe3140, retval=retval@entry=0x0) at pulse/mainloop.c:945
#6  0x00007fc129e1711d in thread (userdata=0x55df1f322050) at pulse/thread-mainloop.c:101
#7  0x00007fc128e9d72c in internal_thread_func (userdata=0x55df1bf8b890) at pulsecore/thread-posix.c:81
#8  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fc133520700 (LWP 22919)):
#0  0x00007fc1392a99cf in __GI___poll (fds=fds@entry=0x7fc13351fbe0, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc136dfba36 in poll (__timeout=-1, __nfds=2, __fds=0x7fc13351fbe0) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  QtWaylandClient::EventThread::run (this=0x55df1a945620) at qwaylanddisplay.cpp:208
#3  0x00007fc13963b623 in QThreadPrivate::start (arg=0x55df1a945620) at thread/qthread_unix.cpp:331
#4  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#5  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fc12b761700 (LWP 22922)):
#0  0x00007fc1392a99cf in __GI___poll (fds=0x7fc114004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fc137d6536e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fc114004e60, timeout=<optimized out>, context=0x7fc114000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fc114000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fc137d654a3 in g_main_context_iteration (context=0x7fc114000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fc13987c642 in QEventDispatcherGlib::processEvents (this=0x7fc114000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fc13982087b in QEventLoop::exec (this=this@entry=0x7fc12b760bc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fc13963a442 in QThread::exec (this=this@entry=0x55df1ae360f0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fc1375eeb39 in QQmlThreadPrivate::run (this=0x55df1ae360f0) at qml/ftw/qqmlthread.cpp:155
#8  0x00007fc13963b623 in QThreadPrivate::start (arg=0x55df1ae360f0) at thread/qthread_unix.cpp:331
#9  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fc12bfff700 (LWP 22921)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df1aabaadc) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55df1aabaa88, cond=0x55df1aabaab0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55df1aabaab0, mutex=0x55df1aabaa88) at pthread_cond_wait.c:638
#3  0x00007fc13067c5eb in cnd_wait (mtx=0x55df1aabaa88, cond=0x55df1aabaab0) at ../include/c11/threads_posix.h:155
#4  util_queue_thread_func (input=input@entry=0x55df1aab5570) at ../src/util/u_queue.c:294
#5  0x00007fc13067c1eb in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
#6  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fc133d21700 (LWP 22918)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df1a929db0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55df1a929d60, cond=0x55df1a929d88) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55df1a929d88, mutex=0x55df1a929d60) at pthread_cond_wait.c:638
#3  0x00007fc13964168b in QWaitConditionPrivate::wait (deadline=..., this=0x55df1a929d60) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=this@entry=0x55df1a9455f0, mutex=mutex@entry=0x55df1a9455e8, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fc136dfb9dd in QtWaylandClient::EventThread::waitForReading (this=0x55df1a9455b0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68
#6  QtWaylandClient::EventThread::run (this=0x55df1a9455b0) at qwaylanddisplay.cpp:206
#7  0x00007fc13963b623 in QThreadPrivate::start (arg=0x55df1a9455b0) at thread/qthread_unix.cpp:331
#8  0x00007fc138722609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fc1392b6163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fc1349a79c0 (LWP 22899)):
[KCrash Handler]
#3  std::vector<CursorTheme::CursorImage, std::allocator<CursorTheme::CursorImage> >::_M_range_check (__n=20, this=0x28) at /usr/include/c++/9/bits/stl_vector.h:1107
#4  std::vector<CursorTheme::CursorImage, std::allocator<CursorTheme::CursorImage> >::at (__n=20, this=0x28) at /usr/include/c++/9/bits/stl_vector.h:1109
#5  PreviewWidget::<lambda()>::operator() (__closure=0x55df20c3b750) at ./kcms/cursortheme/xcursor/previewwidget.cpp:118
#6  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, PreviewWidget::PreviewWidget(QQuickItem*)::<lambda()> >::call (arg=0x7ffd1b3da9b0, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#7  QtPrivate::Functor<PreviewWidget::PreviewWidget(QQuickItem*)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=0x7ffd1b3da9b0, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#8  QtPrivate::QFunctorSlotObject<PreviewWidget::PreviewWidget(QQuickItem*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55df20c3b740, r=<optimized out>, a=0x7ffd1b3da9b0, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443
#9  0x00007fc139858dfe in QtPrivate::QSlotObjectBase::call (a=0x7ffd1b3da9b0, r=0x55df20c3b5d0, this=0x55df20c3b740) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#10 doActivate<false> (sender=0x55df20c3b620, signal_index=3, argv=0x7ffd1b3da9b0) at kernel/qobject.cpp:3886
#11 0x00007fc1398521c7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7fc139abdc80 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd1b3da9b0) at kernel/qobject.cpp:3946
#12 0x00007fc13985d93e in QTimer::timeout (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#13 0x00007fc13984f875 in QObject::event (this=0x55df20c3b620, e=0x7ffd1b3dace0) at kernel/qobject.cpp:1336
#14 0x00007fc13a442dc3 in QApplicationPrivate::notify_helper (this=this@entry=0x55df1a9248c0, receiver=receiver@entry=0x55df20c3b620, e=e@entry=0x7ffd1b3dace0) at kernel/qapplication.cpp:3637
#15 0x00007fc13a44bbd8 in QApplication::notify (this=0x7ffd1b3db040, receiver=0x55df20c3b620, e=0x7ffd1b3dace0) at kernel/qapplication.cpp:3161
#16 0x00007fc139821d7a in QCoreApplication::notifyInternal2 (receiver=0x55df20c3b620, event=0x7ffd1b3dace0) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:332
#17 0x00007fc13987b990 in QTimerInfoList::activateTimers (this=0x55df1a941170) at kernel/qtimerinfo_unix.cpp:643
#18 0x00007fc13987c2c4 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#19 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
#20 0x00007fc137d6517d in g_main_dispatch (context=0x55df1a945880) at ../../../glib/gmain.c:3309
#21 g_main_context_dispatch (context=context@entry=0x55df1a945880) at ../../../glib/gmain.c:3974
#22 0x00007fc137d65400 in g_main_context_iterate (context=context@entry=0x55df1a945880, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#23 0x00007fc137d654a3 in g_main_context_iteration (context=0x55df1a945880, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#24 0x00007fc13987c642 in QEventDispatcherGlib::processEvents (this=0x55df1a945770, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#25 0x00007fc13982087b in QEventLoop::exec (this=this@entry=0x7ffd1b3daf20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#26 0x00007fc139828a24 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x000055df18acbeef in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:182

Reported using DrKonqi
Comment 1 Nate Graham 2022-05-09 16:54:18 UTC
Cannot reproduce. Does this happen with all cursor themes, or just a specific one?
Comment 2 Patrick Silva 2022-05-09 18:13:35 UTC
Now I can reproduce by applying any cursor theme, but not consistently. Sometimes the crash occurs, sometimes it does not even if the same theme is applied again. Here I'm able to reproduce the crash by changing the cursor theme with double-click a few times in sequence.
Comment 3 Alexander Lohnau 2022-05-09 18:40:32 UTC
I tried to select themes by double clicking for at least two minutes and did not encounter any crash. I just installed updated on Neon Unstable and am on Wayland too.
Comment 4 Patrick Silva 2022-05-21 14:19:31 UTC
Created attachment 149079 [details]
only one third-party theme is marked as installed

Well, the crash persists. Noticed something possibly relevant:
I have some cursor themes from KDE Store available for selection in the grid but only one of them is marked as installed in GHNS window. Please see the attached screenshot.
Comment 5 Alexander Lohnau 2022-05-21 14:24:26 UTC
>I have some cursor themes from KDE Store available for selection in the grid but only one of them is marked as installed in GHNS window. Please see the attached screenshot.

Maybe those are installed through global themes. Please check if you have global themes that match the cursor themes that are not marked as installed in the KNS dialog
Comment 6 Alexander Lohnau 2022-05-21 14:33:13 UTC
Not sure why, but now I was able to reproduce the issue. I will look into it.
Comment 7 Patrick Silva 2022-05-21 14:39:58 UTC
Glad you can reproduce. :)
I think global themes are not related because all cursor themes seen in my screenshot were installed directecly via 'Get new cursors' window.

But my third-party global themes are:
layan
mondrian dark
sweet
Comment 8 Alexander Lohnau 2022-05-21 15:32:16 UTC
>Glad you can reproduce. :)

Weirdly enough, I tried to add some debug output and now can not reproduce. When reproducing the issue originally, I marked a theme for deletion and then double clicked another one. Though the deletion part was accidental. The stacktrace was identical to the one you posted. Could you maybe share a video of you triggering the crash? Not sure if that will be useful, but maybe it can give me a hint.

On the plus side, we now know that it is not specific to your setup :)
Comment 9 Patrick Silva 2022-05-21 15:58:25 UTC
Created attachment 149083 [details]
screen recording
Comment 10 Nate Graham 2022-05-23 15:03:01 UTC
I suspect this may have the same root cause as Bug 453027: it tries to contact the server to get the preview image, fails due to an invalid cached URL for that theme, and then crashes.

Would be good to check again if and when Bug 453027 is fixed.
Comment 11 Alexander Lohnau 2022-05-23 19:17:00 UTC
I don't think that is related, because we have the images already downloaded here.
Comment 12 David Edmundson 2022-07-10 22:27:10 UTC
I haven't reproduced it, but I saw another bug with the same timer which gave a good clue.

*** This bug has been marked as a duplicate of bug 456526 ***