WIP: [KSMServer] Load logout dialog after startup rather than on-demand
AbandonedPublic

Authored by broulik on Jun 29 2016, 3:16 PM.

Details

Reviewers
sitter
Group Reviewers
Plasma
Summary

This ensures the logout dialog is kept in memory and continues to work even after a Qt or other library update.

BUG: 364897

Test Plan

Mostly works. I logged in and then screwed up my logout dialog QML file and still got a shutdown dialog.

We need to adjust the logout dialog QML though so it stops the timer when not visible (my root.visible approach didn't work) and resets the timeout. Also it doesn't seem to properly update the selected shutdown type, ie. if I select Logout and then select Shutdown it doesn't notice. Ideally, we'll just do that when we're re-designing the logout dialog anyway.

Diff Detail

Repository
R120 Plasma Workspace
Lint
Lint Skipped
Unit
Unit Tests Skipped
broulik updated this revision to Diff 4854.Jun 29 2016, 3:16 PM
broulik retitled this revision from to WIP: [KSMServer] Load logout dialog after startup rather than on-demand.
broulik updated this object.
broulik edited the test plan for this revision. (Show Details)
broulik added reviewers: Plasma, sitter.
broulik set the repository for this revision to R120 Plasma Workspace.
Restricted Application added a project: Plasma. · View Herald TranscriptJun 29 2016, 3:16 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript

I'm not sure whether that's the correct approach to the problem. It's a workaround and we have probably a bazillion other places where it breaks as well. IMHO the updates should be installed offline and AFAIU packagekit supports that.

Harald, weren't you even looking into offline updates?

mart added a subscriber: mart.Jul 1 2016, 8:58 AM

we may have to use this in the meantime?

(even tough the "kde is bloated oh so much memory" people wouldn't be happy about it)

sitter edited edge metadata.Jul 1 2016, 10:33 AM

Harald, weren't you even looking into offline updates?

Yes.

The thing is, we can't really force distributions to adopt offline updates as currently the only implementation I have seen is in packagekit and there's plenty of distros that don't use packagekit so they'd have to first write a whole bunch of code, and even then they might have reasons for why they wouldn't want to do offline updates. Also offline updates only really make sense when btrfs or zfs is used as otherwise doing it reliably gets tediously slow. Namely since package rollbacks and so forth are unreliable you basically want a full-system backup before you conduct an update, which unless the FS supports snapshots technically means cloning the entire disk or implementing higher level software snapshots. Both of which is substantially slower. On top of that IIRC you always have a reboot in-between, so overall the upgrade also takes longer and requires a reboot. Offline updates are installed on bootup I think, so they can also get in the way of the user using the system. On the plus side systemd has the necessary workflow tech to support offline updates, so once a distro has the "client" side to that it should be mostly workflow improvements.

I think it is worth pointing out that the proposed change here shouldn't be taken as a reason or excuse for patching other bits of software to hold stuff in memory for fear of things not working after updates. If a distribution chooses to do online updates and things then break in a running session that is kind of expected. The problem is that the logout screen is special in that it is the user's only (non-CLI) way of ending the session so the breakage goes away. If the logout dialog is broken you can't even get out of the hell hole that is your broken session :)

I just upgraded my Qt version and could gracefully restart my machine with this patch.

alternative approach for the problem: D2252

broulik abandoned this revision.Aug 1 2016, 8:18 PM