github selkies-project/selkies 7378086

pre-release45 minutes ago

fix(desktop): Keep an installed app when its update lookup fails

An update reads the registry's layer digest before removing anything,
but a lookup that failed came back as an empty digest, which never
matches the installed one: the update removed the app, and the download
that followed failed on the same empty digest, leaving nothing. A
registry outage did this to every app it touched, and an image dropping
this architecture did it through get_blob_sha calling cleanup, which
only dl_layer defines. get_blob_sha now returns 1 where no manifest is
for this architecture, as dl_layer already reads its status, and update
exits 1 with the installed copy left as it is when the lookup fails or
comes back empty.

  • Reproduced: on 012b80c, proot-apps update foo against a stub
    registry serving an index without this architecture, and against one
    failing every request, prints "Removing app root", exits 1, and leaves
    the app folder gone.
  • Fixed: both now exit 1 naming the failure, with the folder intact.
  • Behavior: an update to a new digest removes and reinstalls as before;
    get of an image without this architecture still prints "No manifest
    available ... cannot fetch", exits 1, and leaves nothing; the local
    repository comparison (install, list, completion, run, update,
    uninstall, remove) prints the same output as before the change; the
    shell suite passes 170/170.

Don't miss a new selkies release

NewReleases is sending notifications on new releases.