Bug 691208

Summary: Usability proposal: Save/recover notifications when no user is logged in
Product: [Fedora] Fedora Reporter: Fdor <fdor6>
Component: notification-daemonAssignee: David Zeuthen <davidz>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 14CC: davidz, jmccann, mclasen
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-28 13:33:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fdor 2011-03-27 15:31:06 UTC
Hi, we're adding desktop notifications to a system daemon (smartd), and we've found a problem: If no user is logged in (gdm/kdm is shown), the notification is lost.

We think that some command/way should exist to avoid loosing notifications when nobody is logged in. For example, notifications could be saved and, after the user logs in, recovered and shown.

We currently use the "wall" command to notify the user. It works correctly, but notifications are lost if nobody is logged in (see https://bugzilla.redhat.com/show_bug.cgi?id=675778#c13 ). With the save/recover idea, notifications would be saved, then the user would log in after some minutes/hours/days, and then the notifications would be recovered and the notification bubbles would be shown to the user.

The proposal consists of adding the notification save/recover idea to the linux notification system. 

Thanks

(Perhaps this is not the right bugzilla component to make the suggestion. If so, please tell the correct component)

Comment 1 David Zeuthen 2011-03-28 13:33:02 UTC
First of all, downstream bugzilla is not the right place to file enhancement requests. Such requests should be filed upstream. So I'm closing this bug.

Second of all, this approach is mostly probably the wrong around - IMO the only way this can work is by having each user session pull data from the system, not the system pushing data to sessions.

Comment 2 Fdor 2011-03-28 15:55:47 UTC
Please, indicate me the correct place to file the proposal.

The current method is (I think): A system process generates a system notification by inyecting it into the notification system, the notification system makes the notification available to user sessions, user sessions voluntarily take the notification from the notification system to show it to the user, and the notification system forgets the notification. This is correct if some user session is opened. But, if there is not any user sessions opened, the notification is lost. So my idea is:

* When a new system notification is generated, the notification system will check if there is some user session opened.
* If there is some session opened, then the notification will be made available to the user session, as currently (the user session will pull the notification from the notification system), and the notification will be forgotten.
* If there is not any session opened, then the notification system will save the notification (for example, to a file), and will check regularly if some user session is opened. When a user session is opened, all pending notifications will be recovered from their files, the files will be deleted, and the notifications will be made available to the user session. The user session will pull the notifications as currently, and the notifications will be forgotten.