Bug 438277

Summary: Plasma crashes in PopupProxy::parent() after the opening of the Klipper (Meta+V)
Product: [Plasma] plasmashell Reporter: Anton K <KVAnton.WEB>
Component: ClipboardAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: kde-bugs, kdedev, kinofhek, lukas, mds_foss, nate, plasma-bugs, till2.schaefer
Priority: NOR Keywords: drkonqi
Version: 5.22.1   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.22.3
Sentry Crash Report:
Attachments: Configuration of screens

Description Anton K 2021-06-08 17:25:03 UTC
Application: plasmashell (5.22.0)

Qt Version: 5.15.3
Frameworks Version: 5.82.0
Operating System: Linux 5.11.16-051116-generic x86_64
Windowing System: X11
Drkonqi Version: 5.22.0
Distribution: KDE neon User Edition 5.22

-- Information about the crash:
- What I was doing when the application crashed:

Plasma crash after the opening of the Klipper (Meta+V). Every time.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[New LWP 14652]
[New LWP 14660]
[New LWP 14661]
[New LWP 14662]
[New LWP 14663]
[New LWP 14664]
[New LWP 14665]
[New LWP 14666]
[New LWP 14670]
[New LWP 14671]
[New LWP 14672]
[New LWP 14683]
[New LWP 14684]
[New LWP 14736]
[New LWP 14737]
[New LWP 14738]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fe43455daff in __GI___poll (fds=0x7fff10802728, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29
[Current thread is 1 (Thread 0x7fe4369f58c0 (LWP 14651))]

Thread 17 (Thread 0x7fe3c8d1f700 (LWP 14738)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d02cba0ef0) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d02cba0ea0, cond=0x55d02cba0ec8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d02cba0ec8, mutex=0x55d02cba0ea0) at pthread_cond_wait.c:647
#3  0x00007fe4348fbebb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55d02cba0ea0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55d029e9d040, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fe436568b44 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fe436568fb9 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d029e9cfa0) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 16 (Thread 0x7fe3dcacf700 (LWP 14737)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d02c94c294) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d02c94c240, cond=0x55d02c94c268) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d02c94c268, mutex=0x55d02c94c240) at pthread_cond_wait.c:647
#3  0x00007fe4348fbebb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55d02c94c240) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55d02bee6650, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fe436568b44 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fe436568fb9 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d02bee65b0) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7fe3dedee700 (LWP 14736)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d029e56844) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d029e567f0, cond=0x55d029e56818) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d029e56818, mutex=0x55d029e567f0) at pthread_cond_wait.c:647
#3  0x00007fe4348fbebb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55d029e567f0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x7fe428014090, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fe436568b44 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fe436568fb9 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x7fe428013ff0) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7fe3df5ef700 (LWP 14684)):
#0  0x00007fe43455daff in __GI___poll (fds=0x7fe3d4005240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fe432d4236e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe434b36b3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe3d4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe3df5eece0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#5  0x00007fe4348f4bb2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d02b8cd430) at thread/qthread_unix.cpp:329
#7  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7fe3e4eff700 (LWP 14683)):
#0  0x00007fe432d8f4dd in g_mutex_lock () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe432d418fa in g_main_context_prepare () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe432d4229b in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fe434b36b3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe3d8000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe3e4efecc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fe4348f4bb2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fe409024669 in  () at /usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so
#8  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d02b8bb0b0) at thread/qthread_unix.cpp:329
#9  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7fe40b1c7700 (LWP 14672)):
#0  0x00007fe432d8f508 in g_mutex_unlock () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe432d4228e in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe434b36b3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe3ec000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe40b1c6ca0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#5  0x00007fe4348f4bb2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007fe4364a33ba in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x7fe4000ac7d0) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fe410f0b700 (LWP 14671)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d02a7cae30) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d02a7cade0, cond=0x55d02a7cae08) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d02a7cae08, mutex=0x55d02a7cade0) at pthread_cond_wait.c:647
#3  0x00007fe4348fbebb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55d02a7cade0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55d02a71af40, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fe436568b44 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fe436568fb9 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d02a71aea0) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fe40be5f700 (LWP 14670)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d02a7caa90) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d02a7caa40, cond=0x55d02a7caa68) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d02a7caa68, mutex=0x55d02a7caa40) at pthread_cond_wait.c:647
#3  0x00007fe4348fbebb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55d02a7caa40) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x7fe42800af20, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fe436568b44 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fe436568fb9 in  () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x7fe42800ae80) at thread/qthread_unix.cpp:329
#8  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fe418cf7700 (LWP 14666)):
#0  0x00007fff108947c8 in  ()
#1  0x00007fff10894a97 in  ()
#2  0x00007fe434528235 in __GI___clock_gettime (clock_id=clock_id@entry=1, tp=tp@entry=0x7fe418cf6a30) at ../sysdeps/unix/sysv/linux/clock_gettime.c:38
#3  0x00007fe434b36405 in qt_clock_gettime (ts=0x7fe418cf6a30, clock=1) at kernel/qelapsedtimer_unix.cpp:175
#4  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at kernel/qelapsedtimer_unix.cpp:166
#5  qt_gettime() () at kernel/qelapsedtimer_unix.cpp:175
#6  0x00007fe434b34c9d in QTimerInfoList::updateCurrentTime() (this=this@entry=0x7fe400004950) at kernel/qtimerinfo_unix.cpp:91
#7  0x00007fe434b35279 in QTimerInfoList::timerWait(timespec&) (this=0x7fe400004950, tm=...) at kernel/qtimerinfo_unix.cpp:388
#8  0x00007fe434b36896 in timerSourcePrepareHelper (timeout=0x7fe418cf6af4, src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:162
#9  timerSourcePrepare(GSource*, gint*) (source=<optimized out>, timeout=0x7fe418cf6af4) at kernel/qeventdispatcher_glib.cpp:166
#10 0x00007fe432d418ef in g_main_context_prepare () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007fe432d4229b in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fe434b36b3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe400000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#14 0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe418cf6cc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#15 0x00007fe4348f4bb2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#16 0x00007fe43610f559 in  () at /lib/x86_64-linux-gnu/libQt5Qml.so.5
#17 0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d029d928b0) at thread/qthread_unix.cpp:329
#18 0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#19 0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fe41170c700 (LWP 14665)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fe428006228) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fe4280061d8, cond=0x7fe428006200) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fe428006200, mutex=0x7fe4280061d8) at pthread_cond_wait.c:647
#3  0x00007fe42cf4ab5b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007fe42cf4a75b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fe419f0d700 (LWP 14664)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fe428006228) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fe4280061d8, cond=0x7fe428006200) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fe428006200, mutex=0x7fe4280061d8) at pthread_cond_wait.c:647
#3  0x00007fe42cf4ab5b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007fe42cf4a75b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fe41a70e700 (LWP 14663)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fe428006228) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fe4280061d8, cond=0x7fe428006200) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fe428006200, mutex=0x7fe4280061d8) at pthread_cond_wait.c:647
#3  0x00007fe42cf4ab5b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007fe42cf4a75b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fe41af0f700 (LWP 14662)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fe428006228) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fe4280061d8, cond=0x7fe428006200) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fe428006200, mutex=0x7fe4280061d8) at pthread_cond_wait.c:647
#3  0x00007fe42cf4ab5b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007fe42cf4a75b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fe42c957700 (LWP 14661)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55d029a5c7ec) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55d029a5c798, cond=0x55d029a5c7c0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55d029a5c7c0, mutex=0x55d029a5c798) at pthread_cond_wait.c:647
#3  0x00007fe42cf4ab5b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007fe42cf4a75b in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fe42ed7f700 (LWP 14660)):
#0  0x00007fe432d4025d in g_source_ref () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe432d40328 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe432d4182b in g_main_context_prepare () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe432d4229b in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fe434b36b3b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe420000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe42ed7ecb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007fe4348f4bb2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007fe435470f4b in  () at /lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x7fe4354f4d80) at thread/qthread_unix.cpp:329
#10 0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fe42faff700 (LWP 14652)):
#0  0x00007fe43455daff in __GI___poll (fds=0x7fe42fafebe8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fe436babc1a in  () at /lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fe436bad90a in xcb_wait_for_event () at /lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fe430256e88 in QXcbEventQueue::run() (this=0x55d0298398b0) at qxcbeventqueue.cpp:228
#4  0x00007fe4348f5d4c in QThreadPrivate::start(void*) (arg=0x55d0298398b0) at thread/qthread_unix.cpp:329
#5  0x00007fe4337a9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe43456a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fe4369f58c0 (LWP 14651)):
[KCrash Handler]
#4  QObject::parent() const (this=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:425
#5  PopupProxy::parent() (this=0x0) at ./klipper/popupproxy.cpp:79
#6  PopupProxy::deleteMoreMenus() (this=0x0) at ./klipper/popupproxy.cpp:51
#7  0x00007fe3dc1ecdcd in PopupProxy::buildParent(int, QRegularExpression const&) (this=0x0, index=2, filter=...) at ./klipper/popupproxy.cpp:67
#8  0x00007fe3dc1eb68c in KlipperPopup::rebuild(QString const&) (this=0x55d02a6c78a0, filter=...) at ./klipper/klipperpopup.cpp:168
#9  0x00007fe3dc1eb97b in KlipperPopup::ensureClean() (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:257
#10 KlipperPopup::ensureClean() (this=<optimized out>) at ./klipper/klipperpopup.cpp:114
#11 0x00007fe3dc1cd6a6 in Klipper::slotPopupMenu() (this=0x55d02c00c1b0) at ./klipper/klipper.cpp:544
#12 0x00007fe434b132ee in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff10803150, r=0x55d02c00c1b0, this=0x55d02c075c70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#13 doActivate<false>(QObject*, int, void**) (sender=0x55d02c08ae10, signal_index=4, argv=0x7fff10803150) at kernel/qobject.cpp:3886
#14 0x00007fe434b0c6b7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55d02c08ae10, m=m@entry=0x7fe435cff1c0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff10803150) at kernel/qobject.cpp:3946
#15 0x00007fe4357e78e6 in QAction::triggered(bool) (this=this@entry=0x55d02c08ae10, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#16 0x00007fe4357e9fb8 in QAction::activate(QAction::ActionEvent) (this=0x55d02c08ae10, event=<optimized out>) at kernel/qaction.cpp:1161
#17 0x00007fe4368cced7 in  () at /lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#18 0x00007fe434b132ee in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff10803350, r=0x7fe4368e4600, this=0x55d0299cf670) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#19 doActivate<false>(QObject*, int, void**) (sender=0x55d0299dedc0, signal_index=3, argv=0x7fff10803350) at kernel/qobject.cpp:3886
#20 0x00007fe4368dbb4e in  () at /lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#21 0x00007fe4368dc863 in  () at /lib/x86_64-linux-gnu/libKF5GlobalAccel.so.5
#22 0x00007fe43547d55b in  () at /lib/x86_64-linux-gnu/libQt5DBus.so.5
#23 0x00007fe434b09e69 in QObject::event(QEvent*) (this=0x55d0299dedc0, e=0x7fe42005ba60) at kernel/qobject.cpp:1314
#24 0x00007fe4357eddc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55d0299dedc0, e=0x7fe42005ba60) at kernel/qapplication.cpp:3632
#25 0x00007fe4357f6bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#26 0x00007fe434adc2ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55d0299dedc0, event=0x7fe42005ba60) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#27 0x00007fe434adebd1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55d02982b2c0) at kernel/qcoreapplication.cpp:1821
#28 0x00007fe434b374c7 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55d02996beb0) at kernel/qeventdispatcher_glib.cpp:277
#29 0x00007fe432d4217d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fe432d42400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fe432d424a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fe434b36b22 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d02996f5f0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#33 0x00007fe434adadcb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff10803ac0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#34 0x00007fe434ae2f84 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#35 0x000055d028c4fdfe in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:251
[Inferior 1 (process 14651) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2021-06-08 19:06:41 UTC
Cannot reproduce. Looks like it's failing to get the parent, though. The line it's crashing on is:

return static_cast<KlipperPopup *>(QObject::parent());
Comment 2 Sebastian E. 2021-06-10 16:25:33 UTC
I have the same issue. Plasma crashes every time I use the Clipboard popup shortcut.

Application: plasmashell (5.22.0)

Qt Version: 5.15.2
Frameworks Version: 5.82.0
Operating System: Linux 5.12.9-arch1-1 x86_64
Windowing System: X11
Drkonqi Version: 5.22.0
Distribution: "Arch Linux"

Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f79e727b752 in  () at /usr/lib/qt/plugins/plasma/dataengine/plasma_engine_clipboard.so
#5  0x00007f79e7279d2b in  () at /usr/lib/qt/plugins/plasma/dataengine/plasma_engine_clipboard.so
#6  0x00007f79e727a033 in  () at /usr/lib/qt/plugins/plasma/dataengine/plasma_engine_clipboard.so
#7  0x00007f79e725f523 in  () at /usr/lib/qt/plugins/plasma/dataengine/plasma_engine_clipboard.so
#8  0x00007f7a2174e3bb in  () at /usr/lib/libQt5Core.so.5
#9  0x00007f7a223c7203 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007f7a223c9f18 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
#11 0x00007f7a234356ea in  () at /usr/lib/libKF5GlobalAccel.so.5
#12 0x00007f7a2174e3bb in  () at /usr/lib/libQt5Core.so.5
#13 0x00007f7a2343ffa5 in  () at /usr/lib/libKF5GlobalAccel.so.5
#14 0x00007f7a234401c3 in  () at /usr/lib/libKF5GlobalAccel.so.5
#15 0x00007f7a220b9300 in  () at /usr/lib/libQt5DBus.so.5
#16 0x00007f7a2174415f in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#17 0x00007f7a223cdd62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f7a2171700a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#19 0x00007f7a2171a109 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#20 0x00007f7a21770604 in  () at /usr/lib/libQt5Core.so.5
#21 0x00007f7a1fa3802c in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#22 0x00007f7a1fa8bb59 in  () at /usr/lib/libglib-2.0.so.0
#23 0x00007f7a1fa35781 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#24 0x00007f7a2176fc36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#25 0x00007f7a2171597c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007f7a2171dee4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#27 0x00005654bd2dd20f in  ()
#28 0x00007f7a210a1b25 in __libc_start_main () at /usr/lib/libc.so.6
#29 0x00005654bd2dd34e in  ()
[Inferior 1 (process 1498) detached]
Comment 3 Sebastian E. 2021-06-10 16:43:45 UTC
Probably only happens with multiple displays.

Workaround:
* Disable secondary display (or all except one).
* Invoke shortcut. Plasma will crash once, but then it will work. Just restarting Plasma would probably do the job, too.
* Re-enable other displays.
* Will work until reboot (or probably until Plasma is restarted).
Comment 4 Sebastian E. 2021-06-10 17:04:38 UTC
Also, my secondary left display is smaller than my primary right display and aligned to the bottom. When I align the left screen to the top, it works, too.
Comment 5 mydarkstar 2021-06-12 18:30:29 UTC
I can reproduce this issue too.
My left screen is smaller than my right one and aligned further down.
I can confirm Sebastian's workaround to work as well. And replacing step one with "Align both screens at the top" does the job also.

(In reply to Sebastian E. from comment #3 and comment #4)
Comment 6 Anton K 2021-06-15 12:26:03 UTC
Yes, I also have 2 monitor (second in vertical orientation). And this Sebastian's-"solution" works.
Comment 7 Anton K 2021-06-17 08:31:58 UTC
5.22.1 Not fixed
Comment 8 mydarkstar 2021-06-17 09:42:11 UTC
On that note, I can also say that this issue does not affect 5.21.X versions.
The issue was introduced with the release of 5.22.0.

Between those two versions, the most significant change in Klipper seems to be the implementation of QScreen in `klipperpopup.cpp`.
I assume that __could__ be the source of trouble, since this crash seems to happen on setups with two screens.

The change occurred in 6befb657dd9fd811160e0369913d769cfff7f02d.
Comment 9 Felipe Kinoshita 2021-06-17 18:10:52 UTC
Cannot reproduce on master (using two monitors aligned at the bottom).
Comment 10 Anton K 2021-06-18 12:42:21 UTC
Created attachment 139485 [details]
Configuration of screens
Comment 11 Sebastian E. 2021-06-18 20:06:12 UTC
Alignment at bottom is not sufficient to reproduce the issue. There also must be no screen at the top left of the virtual geometry.

https://invent.kde.org/plasma/plasma-workspace/-/blob/9d2051b0ec2d4857a61d17d9d3f766614c0f42d7/klipper/klipperpopup.cpp

So, the constructor gets the window info of a QMenu that's just been initialized and then calls QGuiApplication::screenAt to query the screen at its center. I don't know what's the initial size of a QMenu, but I assume the coordinates of its center are not much more than (50, 50).

So because there is no screen in our case, the constructor returns early, leaving m_popupProxy uninitialized. Because m_dirty is initially true, rebuild() will be called on the aboutToShow signal, where m_popupProxy is dereferenced while being null. Boom.

Aside from that, the intent of the code seems to be to determine the maximum width and height of the popup. Uhm, well, the code could as well just take a random screen from QGuiApplication::screens(). The correct thing to do would be to iterate QGuiApplication::screens() and collect the minimum width and height.
Comment 12 Sebastian E. 2021-06-18 20:46:17 UTC
Wondering why it crashes in PopupProxy::parent(), and not in KlipperPopup::rebuild()... Calling methods on null objects may work until "this" is actually accessed, which doesn't happen before PopupProxy::parent() or QObject::parent().
Comment 13 Anton K 2021-06-24 12:03:30 UTC
5.22.2 Not fixed
Comment 14 Sebastian E. 2021-06-25 01:31:08 UTC
@Felipe Kinoshita
Could you please revert or fix your commit that broke it?
https://invent.kde.org/plasma/plasma-workspace/-/commit/6befb657dd9fd811160e0369913d769cfff7f02d

Your commit reintroduced a change that has been reverted before:
https://invent.kde.org/plasma/plasma-workspace/-/commit/885c4abe7b5343caa7407c4b441b2cfcd78828c3

Fixing that warning along with the change did not really help, it just crashes differently.

Alternatively replace

if (screen == nullptr) {
 return;
}

with

if (screen == nullptr) screen = QGuiApplication::screens()[0]

Thank you.
Comment 15 Felipe Kinoshita 2021-06-25 01:46:24 UTC
Sure, also why you don't make this change, seems like you have been studying this code a lot recently, just create a merge request and I can take a loot at it.
Comment 16 Sebastian E. 2021-06-25 02:00:14 UTC
(In reply to Felipe Kinoshita from comment #15)
> Sure, also why you don't make this change, seems like you have been studying
> this code a lot recently, just create a merge request and I can take a loot
> at it.

I've already read parts of the "Get involved" guide, and successfully installed kdesrc-build and built/run Dolphin. But I still need to figure out more stuff, like setting up CLion, code style, git-pulling the latest changes, properly run it on my existing system, testing, Gitlab account, how to make a merge request, etc...

If I've had enough time, I would have done it myself. But yeah, I'll probably contribute in the future.
Comment 17 Felipe Kinoshita 2021-06-25 02:11:13 UTC
If you want any help you can call me at @fhek789:kde.org on matrix.
Comment 18 Bug Janitor Service 2021-06-25 03:41:36 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/947
Comment 19 Felipe Kinoshita 2021-06-25 07:49:20 UTC
Git commit 60ab32584b3322b384342e1bb784c07123d4ad7b by Felipe Kinoshita.
Committed on 25/06/2021 at 03:56.
Pushed by fhek into branch 'master'.

Assing first screen if `screen` is null

M  +1    -1    klipper/klipperpopup.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/60ab32584b3322b384342e1bb784c07123d4ad7b
Comment 20 Nate Graham 2021-06-26 00:45:50 UTC
Git commit 71e465210d5491a5805a26a855232bc103ab0215 by Nate Graham, on behalf of Felipe Kinoshita.
Committed on 26/06/2021 at 00:45.
Pushed by ngraham into branch 'Plasma/5.22'.

Assing first screen if `screen` is null


(cherry picked from commit 60ab32584b3322b384342e1bb784c07123d4ad7b)

M  +1    -1    klipper/klipperpopup.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/71e465210d5491a5805a26a855232bc103ab0215
Comment 21 David Edmundson 2021-06-26 22:01:49 UTC
*** Bug 438926 has been marked as a duplicate of this bug. ***
Comment 22 Nate Graham 2021-08-02 13:47:36 UTC
*** Bug 439642 has been marked as a duplicate of this bug. ***