-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
status: Display previous failure of ostree-finalize-staged #1567
Comments
Hmm, is this a legitimate case for still allowing a |
I'm hitting this today on the latest stable release of F28AH: I first ran
After reboot the new deployment is lost:
I see the timeout in the journal:
|
OK, will take a look at this! (I've already gotten some experience with the journal API from experimenting with it for #1489). |
any advice for getting out of the stuck situation I'm in? can I disable staged deployments for now ? |
(BTW, one way you can "work around" this for now is to just run |
is there a way to make the finalize run after all the other riffraff from the system has been stopped or killed? |
btw kudos for making that failure not blow up the system @ajeddeloh here is an example where the old deployment (i.e. N-2) wasn't cleaned up because the new deployment failed to be finalized. I know that's something we discussed recently. |
Was hacking on this, though... it turns out there's no really good journal entry to check here (see systemd/systemd#10265). We could definitely use heuristics, e.g. by priority or trying to parse |
I almost wonder.. should we take a step back from staged deployments and take a two pronged approach?
i.e. in the case that we fail to finalize the staged deployment (new behavior) on shutdown we just fallback to a deployment that was created during the operation (old behavior). Any changes to /etc/ between the upgrade and reboot would be lost (old behavior). This could produce some inconsistent behavior so maybe not a good idea, but just something that popped into my head as I was thinking about it. |
Hmm, or finding ways to do more work upfront and making finalization cheaper? E.g. write to |
I have a suspicion that a factor here is the |
Not a huge fan of randomly swapping bugs. |
SGTM |
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: coreos#1567
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: coreos#1567
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: #1567 Closes: #1601 Approved by: cgwalters
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: coreos#1567
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: #1567 Closes: #1601 Approved by: cgwalters
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: #1567 Closes: #1601 Approved by: jlebon
Sample output: ``` $ rpm-ostree status State: idle Warning: failed to finalize previous deployment check `journalctl -b -1 -u ostree-finalize-staged.service` AutomaticUpdates: disabled ... ``` (Though open to tweaking it). I also played with directly invoking `journalctl` for the user, but that can get really spammy with e.g. `os-prober` output and such. I wrote this in Rust using journal API wrappers because I also plan to implement the `history` command in Rust and will also enhance that new `journal` module there for that. Requires: ostreedev/ostree#1750 Requires: codyps/rust-systemd#54 (Though I've pointed the manifest at my branch for now for CI). Closes: #1567 Closes: #1601 Approved by: jlebon
This is marked as closed but I see this on Fedora 29 silverblue, rpm-ostree version '2019.1' - That is, I thought I had my system up to date but due some failures, deployment failed. I only realized it now after trying to install a new package and, well, could not use it after reboot. Shouldn't rpm-ostree install warn about it as suggested in fist comment? |
Did
The finalization happens at reboot time, so |
Downstream RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1672283 |
We should run the equivalent of
journalctl -b -1 -u ostree-finalize-staged
and note very prominently in status if it failed.A Silverblue user has a slow hard drive and had systemd kill the service.
The text was updated successfully, but these errors were encountered: