Bug 1195748 - New upgrade mode (based on transactional server).
Summary: New upgrade mode (based on transactional server).
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other openSUSE Tumbleweed
: P5 - None : Enhancement (vote)
Target Milestone: ---
Assignee: Ignaz Forster
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-09 19:53 UTC by Sławomir Lach
Modified: 2022-02-17 17:49 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sławomir Lach 2022-02-09 19:53:22 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Build Identifier: 

The problem of transactional server update is user must restart system. I think we can do better, but it probably requires changes in the kernel.

Firstly, remember timestamp, when process lastly perform exec.
Secondly, save timestamp of snapshot creation.
Thirdly, process sees only /usr and / with highest timestamp, but lower than process lastly exec time
Firth, send signal (via DBUS) to processes, telling to inform user, there is need to restart 

There is only one problem: which settings (/etc, /usr/etc, etc.) should process see? As /usr and / or newest? I think, it should see newest, since daemons read full configuration during startup and no need to re-read. In this case, user can edit configuration of service and send some signal to tell to re-read configuration. There is also another problem: what if we do exec and newer version of program starts... it may be helper program to communicate with parent.

Idea is great, but we must brainstorm.
I think, we can mount each snapshot and process running from some snapshot see that snapshot by default. Systemd may try to run app from newest snapshot by default. Also, Desktop Environment could do the same.

Reproducible: Always

Actual Results:  
When using transactional server, we must reboot after update.

Expected Results:  
We do not have to reboot. App should be closed by user as soon as possible and systemd(or DE) should relaunch it.
Comment 1 Guilherme Moro 2022-02-17 17:49:02 UTC
Ignaz should know how to properly address this.