Skip to content
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

Wingpanel hangs after receiving a notification #459

Open
BenoitDuffez opened this issue Jun 7, 2022 · 5 comments
Open

Wingpanel hangs after receiving a notification #459

BenoitDuffez opened this issue Jun 7, 2022 · 5 comments

Comments

@BenoitDuffez
Copy link

BenoitDuffez commented Jun 7, 2022

What Happened?

I'm assuming this is caused by a notification. Every once in a while (ten times a day if not a hundred), the clock is stuck. I can't use the wingpanel. I don't mind because the only use it has is the clock and I can peek at my watch/phone, or change volume but I have keyboard shortcuts.

However this is still a bit annoying. For example now it is 06:44:19 and the clock is stuck at 06:40:32.
In syslog I see a lot of these:

Jun  7 06:40:33 KLK876 io.elementary.w[1576141]: Session.vala:84: Key file does not have key “Image” in group “3566”
Jun  7 06:40:38 KLK876 io.elementary.w[1576141]: message repeated 15 times: [ Session.vala:84: Key file does not have key “Image” in group “3566”]

I'm assuming that this is why the wingpanel does not get updated and is somehow hanging. The same message appears over and over again in syslog.

Steps to Reproduce

I wish I knew.

Expected Behavior

No hang

OS Version

6.x (Odin)

Software Version

Latest release (I have run all updates)

Log Output

No response

Hardware Info

No response

Else

How can I help? I can compile a new version, or get more logs, or try to get more information if needed. I know nothing about vala so my help will be limited. Feel free to ask anything!

@jeremypw
Copy link
Collaborator

jeremypw commented Jun 7, 2022

As this does not seem to be happening generally, maybe you have a certain app sending notifications with a structure that wingpanel chokes on? Or could be related to elementary/wingpanel-indicator-notifications#123 if you have a large number of notifications.

If this is caused by a problem in one of the indicators we ideally want to change things so that the indicators run in separate processes so that a problem in one does not hang the whole wingpanel.

@BenoitDuffez
Copy link
Author

image

That could be the reason, indeed. I'll try to clear them and see if it helps. I didn't know the notifications didn't clear themselves up after some time. Since I hardly ever reboot (current uptime: 18 days, at night it is put to sleep with echo mem >/sys/power/state), the notifications pile up and are never cleared.

Clicking the notification icon can take up to a minute for the dropdown to show up, and clearing notifications from a single app( say Teams) may take a couple of minutes.

While I agree that several hundred notifications is a lot, I don't understand why it takes so much time to handle. Using a separate process is also a great idea, since it wouldn't block other features of the wingpanel (clock, network, sound, keyboard, etc).

@jeremypw
Copy link
Collaborator

jeremypw commented Jun 7, 2022

@BenoitDuffez I am working on a PR that speeds up loading the indicator at least (elementary/wingpanel-indicator-notifications#241) and stops it blocking the wingpanel appearing. For me, it takes about 10 seconds to load 3000 notifications with this PR so its still not fast. This is mainly because each notification generates a complex widget that gets added to a listbox and this is inherently slow. I understand that with Gtk4 the performance of listboxes will be improved.

You can use System Settings to turn off unwanted notifications by the way.

@jeremypw
Copy link
Collaborator

jeremypw commented Jun 7, 2022

I have raised the idea of an upper limit on notifications with Danielle.

@BenoitDuffez
Copy link
Author

I saw your PR, thank you.

I might add to your idea with a setting in the system preferences to auto-prune notifications after X days; 0=never, then 1, 2, 7, etc. I use EOS for work and notifications are short lived in my use case, so I'd prune after one day.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants