W dniu 26.01.2019 o 17:54, Christian Boltz pisze:
Hello,
Am Donnerstag, 24. Januar 2019, 21:54:42 CET schrieb Adam Mizerski:
In snapshots there's nothing wrong. The last shapshot has "freenet" user in /etc/passwd. But the problem I see is that, unlike on normal openSUSE installation, "transactional server" makes no "post" snapshots.
That's probably caused by the difference in how "normal" and "transactional" works.
In a "normal" system, your system always boots from the same snapshot - typically snapshot 1. (Maybe this changes if you use "snapper rollback", but I'd have to test that - let's just ignore this detail in the description below.)
When you start zypper, it first does a "pre" snapshot, and after installing packages etc. (in the current snapshot, typically 1), it does a "post" snapshot. You can think of these snapshots as a backup of your system before and after running zypper.
Typically, you'll have something like this: 1 current 20 pre 21 post
When rebooting, you'll be in snapshot 1 again.
With the transactional setup, things work differently.
When you start zypper, it creates a snapshot (for better understanding you should call it the "future" snapshot instead of "pre"). The difference is that your currently running system doesn't get changed. Instead, the package installation is done _inside the "future" snapshot_. At the end, the to-be-booted snapshot gets set as new default.
This will typically look like this: 19 old 20 current 21 future (copy of 20 + package updates)
When rebooting, your system will boot the new ("future"/21) snapshot, and snapshot 20 becomes an "old" snapshot.
Does this explain the differences?
I think it does. Thanks.
And it looks like the last update broke freenet. In logs, exactly after transactional-update made a new shapshot, when shutting down, systemd complains about freenet user.
IIRC, the changes you colletced in the overlayfs (like manual [1] changes to /etc/passwd) also get merged into the future snapshot when creating that snapshot (and the overlayfs gets emptied when booting the future snapshot). This _could_ also mean that changes between creating the snapshot and rebooting get lost - but I don't know transactional systems good enough to be sure about that.
Based on your freenet.service (using /home/... paths), I'd guess that you create the freenet user manually - correct?
Yes, I created the user manually.
Did you create the user this before or after you did the update? (Hint: if in doubt, check the logs in the snapshot where the user exists, and compare the timestamps to /var/log/zypp/history.)
I created the user and service at least month ago. It survived many updates and reboots.
Regards,
Christian Boltz
[1] "manual" as in "(simplified) not done by the package management", so running "useradd" also counts as "manual" in this case