Bug 486070 - Quitting an app that sent a flood of notifications doesn't stop the flood
Summary: Quitting an app that sent a flood of notifications doesn't stop the flood
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Notifications (show other bugs)
Version: 6.0.4
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: usability
Depends on:
Blocks:
 
Reported: 2024-04-24 13:06 UTC by Nate Graham
Modified: 2024-08-16 16:21 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2024-04-24 13:06:14 UTC
SUMMARY
When Bug 441906 happens, the user cannot recover by quitting the app sending a flood of notifications; only by manually restarting plasmashell.

I understand the technical reasons behind why this happens (Plasma already got the list of notifications to display) but the UX for a normal user is not great.


STEPS TO REPRODUCE
1. Run a chat app that creates a notification per message (e.g. NeoChat) and join a lot of rooms.
2. Go 'offline' for some time, e.g. by closing the laptop lid. Do not quit the app.
3. Many hours or even days later, wake up the system or reconnect to the internet.
4. The app emits a massive number of notifications for missed messages. Plasma attempts to display all of them one by one, degrading system performance and responsiveness; this is Bug 441906.
5. Notice this happening and try to recover by quitting the app that sent the notifications


OBSERVED RESULT
The flood of notifications continues.


EXPECTED RESULT
The flood of notifications ends immediately. The only way to end the flood of useless notifications is to restart plasmashell itself.


ADDITIONAL INFORMATION
The issue could be rendered redundant if we fix Bug 441906.
Comment 1 fanzhuyifan 2024-04-24 20:16:33 UTC
Humm not sure whether we can feasibly implement this functionality -- all notifications are received and queued for display, and the notification widget has no knowledge of the status of the app that sent the notifications. I think that fixing BUG 441906 is the way to go.
Comment 2 Nate Graham 2024-04-25 13:16:26 UTC
With the current architecture, probably.

But long term, the fact that the service lives in the widget is problematic IMO. I would much prefer it if the backend service lived somewhere central and Notifications widgets were just frontends to display history and register themselves as places for notification popups to be displayed. Then the backend could become richer and track app state for the purposes of this idea.

But yes, all of that could probably be obviated by fixing Bug 441906. If you wanna close this, I won't object.