Comment 9 for bug 1978785

Revision history for this message
Michael Vogt (mvo) wrote :

With the new/updated test it's more clear now what is going on:

1. system refreshes core20/kernel
2. kernel fails to boot, system gets reset
3. bootloader falls back to "good" kernel, boots again
4. system boots up with "try_base=new-core20", that works fine
5. bootOk runs, detects that modeenv is fine and updates modeenv to not have "trying" anymore
6. snapd detects rollback-accross-reboot for the kernel snap
7. runs undo on kernel+base
8. the undo of the base triggers
   a) a rollback to the old base which now triggers a new "base_status=try" cleared that status earlier already
   b) a cleanup of the "new" base because that got undone because of the kernel+base undo
   c) now the system reboots but has "base=new-core (no longer on the system)", "try_base=old-core"
9. the system fails to boot because in snap-bootstrap we error hard (bootstate20.go:genericInitramfsSelectSnap) if the base=snap snap is missing.