New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] Unresponsive panel when Discord is open #456
Comments
This is an issue with all Electron-based applications and not an actionable item on our party. |
I suspected as much for the icon, but I hoped for a solution for the unresponsive panel |
Will re-open pending additional logs. If you could follow https://docs.buddiesofbudgie.org/developer/workflow/providing-backtraces it would be very helpful. |
I tried following the instructions for a while, but the problem is that it does not segfault, so I don't have a chance to request a backtrace in gdb. |
Just wanted to say that I did not forget about this, I'm just very busy this week. I will upload some logs as soon as possible. |
So, as mentioned before What I can provide is a flamegraph with and without Discord open (These are interactive SVG, but just opening from GitHub does not seem to make them work. I had to download them and then reopen them in browser) During the record in the first link, the panel was continuously unresponsive (for >5 min, I had to replace the panel, otherwise I could not close Discord). I hope this helps, let me know if I can provide other information. |
theme_subdir_load should not be running for that long... |
I see this is still marked as "Needs more info", is it a leftover or do you actually need more info from me? |
Found the function in GTK. It does what I assumed it does, which is traverse the icon theme paths that it's given. There are a few places in that function where it could be halting - several internal loops. Do the following:
Once the panel freezes, enter Ctrl-C into GDB so it halts the program, then enter |
Ok, fair, I should have thought about Ctrl+C. I will have the results as soon as possible |
Here's the backtrace
I tried a few times, and I noticed that the number of calls to |
Is it consistently locking at |
In the few tries I did, yes |
That's... odd. It seems like GTK is getting stuck in this loop: for (d = icon_theme->priv->dir_mtimes; d; d = d->next)
{
dir_mtime = (IconThemeDirMtime *)d->data;
if (!dir_mtime->exists) // locking here
continue; /* directory doesn't exist */
// ...
} If it truly is stuck in an infinite loop, then the only reason this could happen is that the linked list being iterated over is circular, but that almost seems too simple... |
It cannot be infinite, it does exit, it's just arbitrarily slow to do so. |
Hm... Let's see if this helps. Clone this repo, and build it according to the Solus instructions on the docs site. Then, change this line:
To Then install and log out and back in. |
Ok, I can try, but likely on Thursday, I cannot risk breaking stuff before tomorrow. |
So, on one hand the panel looks responsive, on the other hand now the icon for Discord (and Skype too, so I suspect it may be all Electron applications) is always the generic one. This also means that unless I'm constantly interacting with the panel I may not notice the issue if it disappears fast enough... |
Try the branch |
I tried a few times these evenings, it seems to work. I did not notice issues with the panel, and even the icon stays correct. |
Excellent. I'll open a MR with the change. |
Thank you! |
Description
Since Budgie 10.8, Discord is having issues with the tray. Periodically, the icon shown in the tray switches to a generic one, and whenever that happens all panels and applets are unresponsive.
The green icon on the left here is supposed to be Discord.
Whenever it happens, the system log also receives logs such as
and the CPU usage of budgie-panel rises to a full core.
Budgie version
10.8
Operating System
Solus 4 updated to 16/09/2023
Steps to reproduce the issue
1: Have the system tray applet in a panel
2: open Discord (flatpak version in my case)
3: wait for the icon to change (random chance), use another applet (e.g. try to switch window form the icon task list)
Actual result
Bugged Discord icon, all panel interactions while icon is wrong are ignored, high CPU usage from budgie-panel
Expected result
Discord keeps the correct icon, panels stay responsive and has normal CPU usage
Additional information
No response
The text was updated successfully, but these errors were encountered: