Open
Description
On a fresh boot (no previous updates), running the following results in rebooting into the rollback deployment instead of the booted one
When calling rollback after switch, we expect to throw away the staged deployment. But instead, rollback throws it away and then sets the rollback deployment as default.
Bootc is built from #921
bazzite@antheas-ally-x:~$ sudo ./bootc status
● Booted image: ghcr.io/ublue-os/bazzite-deck:testing
Digest: sha256:fbbeb28c7cc5c6d3240e8d019e9160f6796920c3f3d86305970d3f2729d94e75
Version: testing-41.20241204.4 (2024-12-05 02:55:02 UTC)
Rollback image: ghcr.io/ublue-os/bazzite-deck:stable
Digest: sha256:f44bebbf15932d9edc4e0b28b91614be1e172dba004c0cad6f7a3d46c00837eb
Version: 41.20241125 (2024-11-26 03:48:17 UTC)
# Rebase (notice indicator here is wrong; ball should be in staged)
bazzite@antheas-ally-x:~$ sudo ./bootc switch ghcr.io/ublue-os/bazzite-deck:testing-41.20241204.3
bazzite@antheas-ally-x:~$ sudo ./bootc status
Staged image: ghcr.io/ublue-os/bazzite-deck:testing-41.20241204.3
Digest: sha256:0f0c2d9eb66102d0878030853e5ffeb8b3360ece0fa6879c2e3b9db03eb31fe1
Version: testing-41.20241204.3 (2024-12-05 01:56:42 UTC)
● Booted image: ghcr.io/ublue-os/bazzite-deck:testing
Digest: sha256:fbbeb28c7cc5c6d3240e8d019e9160f6796920c3f3d86305970d3f2729d94e75
Version: testing-41.20241204.4 (2024-12-05 02:55:02 UTC)
Rollback image: ghcr.io/ublue-os/bazzite-deck:stable
Digest: sha256:f44bebbf15932d9edc4e0b28b91614be1e172dba004c0cad6f7a3d46c00837eb
Version: 41.20241125 (2024-11-26 03:48:17 UTC)
# Rollback, here again indicator is stuck on booted, but status --json lists next deployment to be rollback
bazzite@antheas-ally-x:~$ sudo ./bootc rollback
Next boot: rollback deployment
bazzite@antheas-ally-x:~$ sudo ./bootc status
● Booted image: ghcr.io/ublue-os/bazzite-deck:testing
Digest: sha256:fbbeb28c7cc5c6d3240e8d019e9160f6796920c3f3d86305970d3f2729d94e75
Version: testing-41.20241204.4 (2024-12-05 02:55:02 UTC)
Rollback image: ghcr.io/ublue-os/bazzite-deck:stable
Digest: sha256:f44bebbf15932d9edc4e0b28b91614be1e172dba004c0cad6f7a3d46c00837eb
Version: 41.20241125 (2024-11-26 03:48:17 UTC)
Here are the status jsons before and after the switch
bazzite@antheas-ally-x:~$ sudo ./bootc status --json
{"apiVersion":"org.containers.bootc/v1","kind":"BootcHost","metadata":{"name":"host"},"spec":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:testing-41.20241204.3","transport":"registry"},"bootOrder":"default"},"status":{"staged":{"image":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:testing-41.20241204.3","transport":"registry"},"version":"testing-41.20241204.3","timestamp":"2024-12-05T01:56:42Z","imageDigest":"sha256:0f0c2d9eb66102d0878030853e5ffeb8b3360ece0fa6879c2e3b9db03eb31fe1"},"cachedUpdate":null,"incompatible":false,"pinned":false,"store":"ostreeContainer","ostree":{"checksum":"7f3937d3e9906f383a234b1fc82ebe01c79eda2242eac412973ee31c71fa6975","deploySerial":0}},"booted":{"image":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:testing","transport":"registry"},"version":"testing-41.20241204.4","timestamp":"2024-12-05T02:55:02Z","imageDigest":"sha256:fbbeb28c7cc5c6d3240e8d019e9160f6796920c3f3d86305970d3f2729d94e75"},"cachedUpdate":null,"incompatible":false,"pinned":false,"store":"ostreeContainer","ostree":{"checksum":"d4dabc03bbbda6ecee9e6b155c8657dc8fa28c718907c6553923aed279169ad8","deploySerial":1}},"rollback":{"image":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:stable","transport":"registry"},"version":"41.20241125","timestamp":"2024-11-26T03:48:17Z","imageDigest":"sha256:f44bebbf15932d9edc4e0b28b91614be1e172dba004c0cad6f7a3d46c00837eb"},"cachedUpdate":null,"incompatible":false,"pinned":false,"store":"ostreeContainer","ostree":{"checksum":"cc5ea15f6591d3e039bcf20d7f89130f1e2a8de29937d123e3db060696525c21","deploySerial":0}},"rollbackQueued":false,"type":"bootcHost"}}
sudo ./bootc status --json
{"apiVersion":"org.containers.bootc/v1","kind":"BootcHost","metadata":{"name":"host"},"spec":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:testing","transport":"registry"},"bootOrder":"rollback"},"status":{"staged":null,"booted":{"image":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:testing","transport":"registry"},"version":"testing-41.20241204.4","timestamp":"2024-12-05T02:55:02Z","imageDigest":"sha256:fbbeb28c7cc5c6d3240e8d019e9160f6796920c3f3d86305970d3f2729d94e75"},"cachedUpdate":null,"incompatible":false,"pinned":false,"store":"ostreeContainer","ostree":{"checksum":"d4dabc03bbbda6ecee9e6b155c8657dc8fa28c718907c6553923aed279169ad8","deploySerial":1}},"rollback":{"image":{"image":{"image":"ghcr.io/ublue-os/bazzite-deck:stable","transport":"registry"},"version":"41.20241125","timestamp":"2024-11-26T03:48:17Z","imageDigest":"sha256:f44bebbf15932d9edc4e0b28b91614be1e172dba004c0cad6f7a3d46c00837eb"},"cachedUpdate":null,"incompatible":false,"pinned":false,"store":"ostreeContainer","ostree":{"checksum":"cc5ea15f6591d3e039bcf20d7f89130f1e2a8de29937d123e3db060696525c21","deploySerial":0}},"rollbackQueued":true,"type":"bootcHost"}}
The issue was verified by rebooting and ending up in the rollback deployment.