Bug 437081 - System Settings crashed on Wayland when I applied another global theme with double-click
Summary: System Settings crashed on Wayland when I applied another global theme with d...
Status: RESOLVED UPSTREAM
Alias: None
Product: systemsettings
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL: https://codereview.qt-project.org/c/q...
Keywords: drkonqi, wayland
: 431428 437483 437577 437640 437645 437877 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-05-14 11:53 UTC by Patrick Silva
Modified: 2021-05-30 21:43 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2021-05-14 11:53:09 UTC
Application: systemsettings5 (5.22.80)

Qt Version: 5.15.2
Frameworks Version: 5.83.0
Operating System: Linux 5.8.0-53-generic x86_64
Windowing System: Wayland
Drkonqi Version: 5.22.80
Distribution: KDE neon Unstable Edition

-- Information about the crash:
- What I was doing when the application crashed:
I was using Sweet global theme, System Settings crashed when I tried to switch to Breeze Dark with double-click on it.

The crash can be reproduced sometimes.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7ff2748b08c0 (LWP 30613))]
[New LWP 30634]
[New LWP 30635]
[New LWP 30636]
[New LWP 30637]
[New LWP 30638]
[New LWP 30639]
[New LWP 30640]
[New LWP 30664]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007ff278e96aff in __GI___poll (fds=fds@entry=0x7ffec1935558, nfds=nfds@entry=1, timeout=timeout@entry=1000) at ../sysdeps/unix/sysv/linux/poll.c:29

Thread 9 (Thread 0x7ff2526c5700 (LWP 30664)):
#0  0x00007ff278e96b0e in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ff276ed636e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7ff2440feb80, timeout=<optimized out>, context=0x7ff24410ff90) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7ff24410ff90, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007ff276ed64a3 in g_main_context_iteration (context=0x7ff24410ff90, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007ff279461ffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ff2441fcd00, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007ff2794061eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff2526c4cc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007ff279220a52 in QThread::exec() (this=this@entry=0x558b300ae130) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007ff2782c1fa9 in QQmlThreadPrivate::run() (this=0x558b300ae130) at qml/ftw/qqmlthread.cpp:155
#8  0x00007ff279221bec in QThreadPrivate::start(void*) (arg=0x558b300ae130) at thread/qthread_unix.cpp:329
#9  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7ff2535ef700 (LWP 30640)):
#0  g_mutex_unlock (mutex=0x7ff24c000c20) at ../../../glib/gthread-posix.c:1493
#1  0x00007ff276ed5437 in g_main_context_acquire (context=0x7ff24c000c20) at ../../../glib/gmain.c:3389
#2  0x00007ff276ed6225 in g_main_context_iterate (context=context@entry=0x7ff24c000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3997
#3  0x00007ff276ed64a3 in g_main_context_iteration (context=0x7ff24c000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007ff279461ffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ff24c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007ff2794061eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff2535eecc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007ff279220a52 in QThread::exec() (this=this@entry=0x558b11108310) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007ff2782c1fa9 in QQmlThreadPrivate::run() (this=0x558b11108310) at qml/ftw/qqmlthread.cpp:155
#8  0x00007ff279221bec in QThreadPrivate::start(void*) (arg=0x558b11108310) at thread/qthread_unix.cpp:329
#9  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7ff262ffd700 (LWP 30639)):
#0  0x00007ff27ab82e11 in  () at /lib64/ld-linux-x86-64.so.2
#1  0x00007ff27ab88f2c in __tls_get_addr () at /lib64/ld-linux-x86-64.so.2
#2  0x00007ff2792210ba in get_thread_data () at thread/qthread_unix.cpp:207
#3  QThreadData::current(bool) (createIfNecessary=createIfNecessary@entry=true) at thread/qthread_unix.cpp:207
#4  0x00007ff279461ece in postEventSourcePrepare(GSource*, gint*) (s=0x7ff258004bb0, timeout=timeout@entry=0x7ff262ffcaf4) at kernel/qeventdispatcher_glib.cpp:253
#5  0x00007ff276ed58ef in g_main_context_prepare (context=context@entry=0x7ff258000c20, priority=priority@entry=0x7ff262ffcb80) at ../../../glib/gmain.c:3619
#6  0x00007ff276ed629b in g_main_context_iterate (context=context@entry=0x7ff258000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4027
#7  0x00007ff276ed64a3 in g_main_context_iteration (context=0x7ff258000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#8  0x00007ff279461ffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ff258000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#9  0x00007ff2794061eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff262ffccc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#10 0x00007ff279220a52 in QThread::exec() (this=this@entry=0x558b10e23ca0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#11 0x00007ff2782c1fa9 in QQmlThreadPrivate::run() (this=0x558b10e23ca0) at qml/ftw/qqmlthread.cpp:155
#12 0x00007ff279221bec in QThreadPrivate::start(void*) (arg=0x558b10e23ca0) at thread/qthread_unix.cpp:329
#13 0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#14 0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7ff2637fe700 (LWP 30638)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558b10a720ac) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558b10a72058, cond=0x558b10a72080) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x558b10a72080, mutex=0x558b10a72058) at pthread_cond_wait.c:647
#3  0x00007ff271de3e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007ff271de3a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7ff263fff700 (LWP 30637)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558b10a720a8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558b10a72058, cond=0x558b10a72080) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x558b10a72080, mutex=0x558b10a72058) at pthread_cond_wait.c:647
#3  0x00007ff271de3e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007ff271de3a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7ff270ebc700 (LWP 30636)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558b10a720a8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558b10a72058, cond=0x558b10a72080) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x558b10a72080, mutex=0x558b10a72058) at pthread_cond_wait.c:647
#3  0x00007ff271de3e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007ff271de3a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7ff2716bd700 (LWP 30635)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558b10a720a8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558b10a72058, cond=0x558b10a72080) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x558b10a72080, mutex=0x558b10a72058) at pthread_cond_wait.c:647
#3  0x00007ff271de3e6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007ff271de3a6b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7ff273c11700 (LWP 30634)):
#0  0x00007ff278e96aff in __GI___poll (fds=0x7ff26c005240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ff276ed636e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7ff26c005240, timeout=<optimized out>, context=0x7ff26c000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7ff26c000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007ff276ed64a3 in g_main_context_iteration (context=0x7ff26c000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007ff279461ffb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ff26c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007ff2794061eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff273c10cb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007ff279220a52 in QThread::exec() (this=this@entry=0x7ff277f61d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007ff277eddf4b in QDBusConnectionManager::run() (this=0x7ff277f61d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007ff279221bec in QThreadPrivate::start(void*) (arg=0x7ff277f61d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#9  0x00007ff277897609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ff278ea3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ff2748b08c0 (LWP 30613)):
[KCrash Handler]
#6  0x00007ff276ba4794 in QWaylandClientExtensionPrivate::handleRegistryGlobal(void*, wl_registry*, unsigned int, QString const&, unsigned int) (data=0x558b16d82560, registry=0x558b1084fbc0, id=45, interface=..., version=1) at global/qwaylandclientextension.cpp:67
#7  0x00007ff276b80822 in QtWaylandClient::QWaylandDisplay::registry_global(unsigned int, QString const&, unsigned int) (this=<optimized out>, id=45, interface=..., version=1) at qwaylanddisplay.cpp:396
#8  0x00007ff276baed16 in QtWayland::wl_registry::handle_global(void*, wl_registry*, unsigned int, char const*, unsigned int) (data=0x558b1084df00, object=<optimized out>, name=45, interface=0x558b152f3860 "org_kde_kwin_blur_manager", version=1) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:236
#9  0x00007ff274a82ff5 in ffi_call_unix64 () at ../src/x86/unix64.S:101
#10 0x00007ff274a8240a in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669
#11 0x00007ff276afc3a8 in wl_closure_invoke (closure=0x558b152f3780, flags=1, target=<optimized out>, opcode=0, data=<optimized out>) at ../src/connection.c:1018
#12 0x00007ff276af8c48 in dispatch_event (display=display@entry=0x558b10852110, queue=<optimized out>) at ../src/wayland-client.c:1445
#13 0x00007ff276afa21c in dispatch_queue (queue=0x558b108521e0, display=0x558b10852110) at ../src/wayland-client.c:1591
#14 wl_display_dispatch_queue_pending (display=0x558b10852110, queue=0x558b108521e0) at ../src/wayland-client.c:1833
#15 0x00007ff276afa280 in wl_display_dispatch_pending (display=<optimized out>) at ../src/wayland-client.c:1896
#16 0x00007ff276b80155 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=0x558b1084def0) at qwaylanddisplay.cpp:221
#17 0x00007ff27943e730 in doActivate<false>(QObject*, int, void**) (sender=0x558b108cfa20, signal_index=4, argv=0x7ffec1936310) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#18 0x00007ff279437ac7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x558b108cfa20, m=m@entry=0x7ff2796a11c0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#19 0x00007ff279404287 in QAbstractEventDispatcher::awake() (this=this@entry=0x558b108cfa20) at .moc/moc_qabstracteventdispatcher.cpp:149
#20 0x00007ff27946201c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x558b108cfa20, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#21 0x00007ff2794061eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffec1936430, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#22 0x00007ff27940e394 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#23 0x0000558b1025b272 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:208
[Inferior 1 (process 30613) detached]

Reported using DrKonqi
Comment 1 David Edmundson 2021-05-14 12:06:24 UTC
At least it's not the same registry crash \o/

AFAIK QWaylandClientExtension is only used by the klipper and and the button for setting global shortcuts. Do you remember if you would have opened that view?

Does "Sweet" use any custom QStyles that might have loaded it?
Comment 2 David Edmundson 2021-05-14 12:20:39 UTC
Found a path that is broken /assuming/ you had at some point visited a page to change a global shortcut
Comment 4 Patrick Silva 2021-05-14 12:34:34 UTC
I did not use klipper before the crash. Maybe visited a page to
change a global shortcut. I do not remember well though.

I do not know if Sweet use a custom QStyle. Its source code is available in github
https://github.com/EliverLara/Sweet-kde
Comment 5 David Edmundson 2021-05-22 08:51:30 UTC
*** Bug 437483 has been marked as a duplicate of this bug. ***
Comment 6 David Edmundson 2021-05-23 22:02:39 UTC
*** Bug 437577 has been marked as a duplicate of this bug. ***
Comment 7 David Edmundson 2021-05-25 10:15:00 UTC
*** Bug 437645 has been marked as a duplicate of this bug. ***
Comment 8 David Edmundson 2021-05-25 10:15:04 UTC
*** Bug 437640 has been marked as a duplicate of this bug. ***
Comment 9 David Edmundson 2021-05-30 21:43:50 UTC
*** Bug 431428 has been marked as a duplicate of this bug. ***
Comment 10 David Edmundson 2021-05-30 21:43:53 UTC
*** Bug 437877 has been marked as a duplicate of this bug. ***