Bug 490952 - Copying a large image to the clipboard from the Nimbus Screen Capture Firefox add-on hangs plasmashell until it's finished copying
Summary: Copying a large image to the clipboard from the Nimbus Screen Capture Firefox...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Clipboard widget & pop-up (other bugs)
Version First Reported In: 6.1.3
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL: https://imgur.com/a/CJeITkO
Keywords: efficiency-and-performance
Depends on:
Blocks:
 
Reported: 2024-07-28 22:06 UTC by Roke Julian Lockhart Beedell
Modified: 2025-08-29 09:36 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/184398/events/966d4cc308b240cdb4e47a7b1044210f/


Attachments
A Screencast That Demonstrates Reproduction (2.58 MB, video/mp4)
2024-07-28 22:07 UTC, Roke Julian Lockhart Beedell
Details
A Screencast Demonstrating Unsuccessful Reproduction When Using Proposed Alternatives Under KWin For X11 (2.00 MB, video/mp4)
2024-07-30 19:31 UTC, Roke Julian Lockhart Beedell
Details
A Not Very Useful Screencast Of The Problem Reproducing Under KWin For Wayland (1.25 MB, video/webm)
2025-05-20 20:13 UTC, Roke Julian Lockhart Beedell
Details
A Screencast That Demonstrates Reproduction Under KWin Wayland On Plasma 6.4.4 (2.25 MB, video/webm)
2025-08-14 15:29 UTC, Roke Julian Lockhart Beedell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roke Julian Lockhart Beedell 2024-07-28 22:06:59 UTC
SUMMARY
Duplicating a large image to the clipboard causes PlasmaShell to hang until it's duplicated.

STEPS TO REPRODUCE
1.  ```sh
    firefox 'https://addons.mozilla.org/firefox/downloads/file/3617883/nimbus_screenshot-15.6.9.xpi'
    ```
2.  Screenshot the entire page of https://ux.stackexchange.com/questions/40627/what-do-you-call-websites-that-make-heavy-use-of-vertical-scrolling?noredirect=1&lq=1.
3.  Duplicate it to the clipboard.

OBSERVED RESULT
PlasmaShell hangs. Luckily, the `noborderrule=2` KWin rule allows me to see the window decorations at least. Otherwise, I would have thought that it had crashed. It appears instead to merely not render its contents.

Firefox hangs too, *if you attempt to close it*. However, that's probably worth an issue at their Bugzilla, rather than here.

EXPECTED RESULT
PlasmaShell shouldn't be affected by this.

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 40
KDE Plasma Version: 6.1.3
KDE Frameworks Version: 6.4.0
Qt Version: 6.7.2
Kernel Version: 6.9.11-200.fc40.x86_64 (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor
Memory: 30.5 GiB of RAM
Graphics Processor: AMD Radeon RX 5700
Manufacturer: ASRock
Product Name: X670E Taichi
Comment 1 Roke Julian Lockhart Beedell 2024-07-28 22:07:17 UTC
Created attachment 172090 [details]
A Screencast That Demonstrates Reproduction
Comment 2 Nate Graham 2024-07-30 17:07:54 UTC
I can't get this Nimbus extension to work, so I tried it using the built-in Firefox screenshot tools, which also have a "screenshot entire page" feature. Doing that and then clicking the "Copy" button causes no hangs for me.

Can you reproduce the hand with Firefox's built-in screenshot tools? Or when copying a large image in Dolphin or Gwenview?
Comment 3 Roke Julian Lockhart Beedell 2024-07-30 19:31:59 UTC
Created attachment 172129 [details]
A Screencast Demonstrating Unsuccessful Reproduction When Using Proposed Alternatives Under KWin For X11

(In reply to Nate Graham from comment #2)

Are you definitely using X? I ask because it's not a problem for me under Wayland. To answer your question, it's never been a problem in Gwenview or Dolphin. However, it has been a consistent problem using that extension since I started using it last year, on openSUSE Tumbleweed, so it's not a recent regression, especially not a problem caused specifically by Fedora 40 KDE Spin's *non-default* X package.

Gosh knows how nor why it affects PlasmaShell of all things.
Comment 4 Roke Julian Lockhart Beedell 2024-07-30 19:42:23 UTC
(In reply to Nate Graham from comment #2)
Regarding you not being able to get that extension to work, I'm using https://kojipkgs.fedoraproject.org//packages/firefox/128.0/2.fc40/x86_64/firefox-128.0-2.fc40.x86_64.rpm (from https://koji.fedoraproject.org/koji/rpminfo?rpmID=39142926) so maybe try it on that, if you're not already.
Comment 5 Roke Julian Lockhart Beedell 2024-08-10 13:56:30 UTC
Note that it does temporarily hang Firefox even under Wayland (albeit not PlasmShell) so my guess is that there's a bug in Firefox that is somehow interacting with PlasmaShell under X11 that the Wayland implementation prevents. Of course, I'll try to report this to Mozilla, but PlasmaShell shouldn't be vulnerable to whatever FF is accidentally doing, I expect.
Comment 6 Nate Graham 2024-08-12 20:46:43 UTC Comment hidden (spam)
Comment 7 Roke Julian Lockhart Beedell 2024-08-13 01:31:32 UTC Comment hidden (spam)
Comment 8 Roke Julian Lockhart Beedell 2024-08-13 01:32:33 UTC Comment hidden (spam)
Comment 9 Nate Graham 2024-08-13 19:33:52 UTC Comment hidden (spam)
Comment 10 Roke Julian Lockhart Beedell 2024-08-13 19:47:02 UTC Comment hidden (spam)
Comment 11 Nate Graham 2024-08-13 20:34:47 UTC Comment hidden (spam)
Comment 12 TraceyC 2025-02-24 17:59:06 UTC
Adding the x11-only keyword
Comment 13 Roke Julian Lockhart Beedell 2025-02-25 17:07:06 UTC
(In reply to TraceyC from comment #12)  
> Adding the `x11-only` keyword.

Reproduction
------------

It doesn't apply to *solely* (Kwin +) XOrg 11, for it reproduces with `kwin-wayland-6.3.1-1.fc41.x86_64` and `firefox-135.0.1-1.fc41.x86_64`: there is a momentary hang when using the "Copy to clipboard" button.

As an example, try:

1.	Visit "[`worlds-highest-website.com`][1]":

	~~~sh
	#!/usr/bin/env sh
	firefox 'https://worlds-highest-website.com/'
	~~~

2.	Enlarge the window to approximately 5 x your display's physical size.
3.	Invoke the context menu (≣⃣).
4.	Select "Nimbus Screenshot".
5.	Select "Visible part of page".
6.	Select "Done".
7.	Select "Copy to Clipboard".

I've uploaded a poor demonstration at [`youtu.be/pGJnOYbtlW8`][2]. When my mouse hovers over an element is when I've clicked it, so the lag between click and execution is ≈ 1.2s. Perhaps having the KWin Debug window open would be helpful, next time?

Bibliography
------------

[1]: https://worlds-highest-website.com/#hades:~:text=Highest%20Website!%20It%E2%80%99s-,18.94%20kilometers%20high,-(about%2011.77%20miles)%2C
[2]: https://www.youtube.com/watch?v=pGJnOYbtlW8#:~:text=+-,2025%2D02%2D25T16,-:52:26+00:00%5BEurope/London%5D%5Bu%2Dca=iso8601%5D

Environment
-----------

1.	~~~sh
	#!/usr/bin/env sh
	kinfo
	~~~

2.	> ~~~YAML
	> Operating System: Fedora Linux 41
	> KDE Plasma Version: 6.3.1
	> KDE Frameworks Version: 6.11.0
	> Qt Version: 6.8.2
	> Kernel Version: 6.12.15-200.fc41.x86_64 (64-bit)
	> Graphics Platform: Wayland
	> ~~~
Comment 14 Roke Julian Lockhart Beedell 2025-03-05 11:46:52 UTC
(In reply to Roke Julian Lockhart Beedell from comment #13)

If of use, I've published a trace at [`share.firefox.dev/4h3dnKk`][1]. Would a flamegraph on `plasmashell` (simultaneously) be of use?

[1]: https://share.firefox.dev/4h3dnKk
Comment 15 Nate Graham 2025-05-20 18:25:05 UTC
Can I ask if you're still able to reproduce the issue with Plasma 6.3.5 or later?
Comment 16 Roke Julian Lockhart Beedell 2025-05-20 20:13:27 UTC
Created attachment 181583 [details]
A Not Very Useful Screencast Of The Problem Reproducing Under KWin For Wayland

(In reply to Nate Graham from comment #15)

Yes, and this is not XOrg-specific. Using `kwin-wayland-6.3.5-2.fc42` and `firefox-138.0.3-1`, I ran `strace -Tr -p 249557`, with which I saw the undermentioned calls to `newfstatat(AT_FDCWD, "/etc/localtime"` repeat (there are two batches for the two times I tried it during the trace):

> 0.094200 ppoll([{fd=6, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=25, events=POLLIN}, {fd=28, events=POLLIN}, {fd=29, events=POLLIN}, {fd=36, events=POLLIN}, {fd=38, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN}, {fd=45, events=POLLIN}, {fd=46, events=POLLIN}, {fd=55, events=POLLIN}, {fd=57, events=POLLIN}, {fd=62, events=POLLIN}, {fd=75, events=POLLIN}, {fd=76, events=POLLIN}, {fd=93, events=POLLIN}, {fd=94, events=POLLIN}, {fd=95, events=POLLIN}, {fd=97, events=POLLIN}, {fd=101, events=POLLIN}], 23, {tv_sec=0, tv_nsec=99000000}, NULL, 8) = 0 (Timeout) <0.099142>
> 0.099230 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000026>
> 0.000063 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000090 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000035 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000037 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000046 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000018>
> 0.000038 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000046 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000029 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000032 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000027 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000026 newfstatat(AT_FDCWD, "/etc/TZ", 0x7ffd78bc6b10, 0) = -1 ENOENT (No such file or directory) <0.000009>
> 0.000026 newfstatat(AT_FDCWD, "/etc/timezone", 0x7ffd78bc6b10, 0) = -1 ENOENT (No such file or directory) <0.000009>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000069 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000031 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000047 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000484 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000015>
> 0.000036 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000035 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000043 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000037 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000025>
> 0.000147 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000018>
> 0.000076 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000015>
> 0.000081 write(6, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000016>
> 0.000143 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000030>
> 0.000086 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000014>
> 0.000043 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000036 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000041 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000031 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000032 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000110 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000074 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000107 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000032 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000030 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000090 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000032 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000047 ppoll([{fd=6, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=25, events=POLLIN}, {fd=28, events=POLLIN}, {fd=29, events=POLLIN}, {fd=36, events=POLLIN}, {fd=38, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN}, {fd=45, events=POLLIN}, {fd=46, events=POLLIN}, {fd=55, events=POLLIN}, {fd=57, events=POLLIN}, {fd=62, events=POLLIN}, {fd=75, events=POLLIN}, {fd=76, events=POLLIN}, {fd=93, events=POLLIN}, {fd=94, events=POLLIN}, {fd=95, events=POLLIN}, {fd=97, events=POLLIN}, {fd=101, events=POLLIN}], 23, {tv_sec=0, tv_nsec=0}, NULL, 8) = 1 ([{fd=6, revents=POLLIN}], left {tv_sec=0, tv_nsec=0}) <0.000015>
> 0.000043 read(6, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000009>
> 0.000048 futex(0x561d195eefcc, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000009>
> 0.000023 futex(0x561d195eef80, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000009>
> 0.000022 futex(0x561d19132018, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000009>
> 0.000022 futex(0x561d195ef2b8, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 78, NULL, FUTEX_BITSET_MATCH_ANY) = 0 <0.000121>

> 0.000116 ppoll([{fd=6, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=25, events=POLLIN}, {fd=28, events=POLLIN}, {fd=29, events=POLLIN}, {fd=36, events=POLLIN}, {fd=38, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN}, {fd=45, events=POLLIN}, {fd=46, events=POLLIN}, {fd=55, events=POLLIN}, {fd=57, events=POLLIN}, {fd=62, events=POLLIN}, {fd=75, events=POLLIN}, {fd=76, events=POLLIN}, {fd=93, events=POLLIN}, {fd=94, events=POLLIN}, {fd=95, events=POLLIN}, {fd=97, events=POLLIN}, {fd=101, events=POLLIN}], 23, {tv_sec=0, tv_nsec=745000000}, NULL, 8) = 1 ([{fd=6, revents=POLLIN}], left {tv_sec=0, tv_nsec=244676953}) <0.500347>
> 0.500408 read(6, "\2\0\0\0\0\0\0\0", 8) = 8 <0.000009>
> 0.000094 ppoll([{fd=6, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=25, events=POLLIN}, {fd=28, events=POLLIN}, {fd=29, events=POLLIN}, {fd=36, events=POLLIN}, {fd=38, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN}, {fd=45, events=POLLIN}, {fd=46, events=POLLIN}, {fd=55, events=POLLIN}, {fd=57, events=POLLIN}, {fd=62, events=POLLIN}, {fd=75, events=POLLIN}, {fd=76, events=POLLIN}, {fd=93, events=POLLIN}, {fd=94, events=POLLIN}, {fd=95, events=POLLIN}, {fd=97, events=POLLIN}, {fd=101, events=POLLIN}], 23, {tv_sec=0, tv_nsec=244000000}, NULL, 8) = 0 (Timeout) <0.244294>
> 0.244401 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000062>
> 0.000105 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000093 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000014>
> 0.000038 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000037 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000045 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000029 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000046 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000029 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000030 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000027 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000026 newfstatat(AT_FDCWD, "/etc/TZ", 0x7ffd78bc6b10, 0) = -1 ENOENT (No such file or directory) <0.000009>
> 0.000026 newfstatat(AT_FDCWD, "/etc/timezone", 0x7ffd78bc6b10, 0) = -1 ENOENT (No such file or directory) <0.000017>
> 0.000063 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000081 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000038 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000562 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000015>
> 0.000044 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000020>
> 0.000051 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000040 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000031 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000112 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000039 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000061 write(6, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000009>
> 0.000108 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000029 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000028 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000027 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000101 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000013>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000071 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000027 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000010>
> 0.000123 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000016>
> 0.000049 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000035 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000033 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000012>
> 0.000120 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000014>
> 0.000042 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=3664, ...}, 0) = 0 <0.000011>
> 0.000047 ppoll([{fd=6, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=25, events=POLLIN}, {fd=28, events=POLLIN}, {fd=29, events=POLLIN}, {fd=36, events=POLLIN}, {fd=38, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN}, {fd=45, events=POLLIN}, {fd=46, events=POLLIN}, {fd=55, events=POLLIN}, {fd=57, events=POLLIN}, {fd=62, events=POLLIN}, {fd=75, events=POLLIN}, {fd=76, events=POLLIN}, {fd=93, events=POLLIN}, {fd=94, events=POLLIN}, {fd=95, events=POLLIN}, {fd=97, events=POLLIN}, {fd=101, events=POLLIN}], 23, {tv_sec=0, tv_nsec=0}, NULL, 8) = 1 ([{fd=6, revents=POLLIN}], left {tv_sec=0, tv_nsec=0}) <0.000015>

I also recorded a performance profile with `perf record --call-graph dwarf plasmashell`, but IDK whether that's how one is meant to. I've managed to compress it to 4.3 MiB, but that's too high for this BZ instance, so it's available at https://collaborate.kde.org/s/XJQYPDBXj9xWH5J.
Comment 17 Roke Julian Lockhart Beedell 2025-05-20 20:16:36 UTC
(In reply to Roke Julian Lockhart Beedell from comment #16)

Forgot to provide Plasma-specific environment information:

> Operating System: Fedora Linux 42  
> KDE Plasma Version: 6.3.5  
> KDE Frameworks Version: 6.14.0  
> Qt Version: 6.9.0  
> Kernel Version: 6.14.6-300.fc42.x86_64 (64-bit)  
> Graphics Platform: Wayland  
> Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor  
> Memory: 30.4 GiB of RAM
Comment 18 Nate Graham 2025-08-13 22:41:26 UTC
Can you still reproduce this in Plasma 6.4.4 or later?
Comment 19 Roke Julian Lockhart Beedell 2025-08-14 15:29:54 UTC
Created attachment 184080 [details]
A Screencast That Demonstrates Reproduction Under KWin Wayland On Plasma 6.4.4

(In reply to Nate Graham from comment #18)

Yes, with https://addons.mozilla.org/firefox/downloads/file/3617883/nimbus_screenshot-15.6.9.xpi and https://koji.fedoraproject.org/koji/rpminfo?rpmID=43883361, on:

> ~~~
> Operating System: Fedora Linux 42
> KDE Plasma Version: 6.4.4
> KDE Frameworks Version: 6.17.0
> Qt Version: 6.9.1
> Kernel Version: 6.15.9-201.fc42.x86_64 (64-bit)
> Graphics Platform: Wayland
> Processors: 16 × AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
> Memory: 32 GiB of RAM (30.6 GiB usable)
> Graphics Processor: AMD Radeon 780M Graphics
> Manufacturer: Framework
> Product Name: Laptop 16 (AMD Ryzen 7040 Series)
> System Version: A7
> ~~~

I've attached a screencast which demonstrates how the duration between selecting the Application Menu's panel logomark increases from effectively 0 ms to > 1.25 s when the image is being duplicated into the clipboard.

Unfortunately, this is less evident than it once was, due to my now-faster hardware. However, the third reproduction depicted is quite demonstrative.
Comment 20 Bug Janitor Service 2025-08-29 03:47:47 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 21 Roke Julian Lockhart Beedell 2025-08-29 09:36:38 UTC
(In reply to Bug Janitor Service from comment #20)

Changing to REPORTED, because I've responded with a reproduction on Wayland in 6.4.4. Should it be CONFIRMED, though?