You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, if we interrupt a forklift plt cache-repo operation while a required repo is in the middle of being cached, causing a partial failure of the operation, then the repo cache is left in a state that will cause errors when the partially-downloaded repo (or the cached repo mirror) is used. We might also have a similar problem with partial failures of file downloads.
If we encounter an error while trying to use the cached repo mirror (i.e. the bare git repo) and we have internet access, we should delete and re-download it. If we determine that a cached repo or file download is corrupted (e.g. because it fails checksum the checks suggested by #243 ), then we should re-clone it from our cached repo mirror.
At a minimum, this recovery work should be done whenever we run the forklift plt cache-repo command (and the respective recovery work should be done for the other plt cache-* subcommands. It might also make sense to do it whenever we run forklift plt stage/apply. Then forklift plt switch/upgrade should inherit that recovery work when they cache the pallet's requirements.
The text was updated successfully, but these errors were encountered:
ethanjli
changed the title
Interrupting a cache operation with a partial failure leaves the cache in an invalid state
Interrupting a caching operation with a partial failure leaves the cache in an invalid state
Jul 4, 2024
Currently, if we interrupt a
forklift plt cache-repo
operation while a required repo is in the middle of being cached, causing a partial failure of the operation, then the repo cache is left in a state that will cause errors when the partially-downloaded repo (or the cached repo mirror) is used. We might also have a similar problem with partial failures of file downloads.If we encounter an error while trying to use the cached repo mirror (i.e. the bare git repo) and we have internet access, we should delete and re-download it. If we determine that a cached repo or file download is corrupted (e.g. because it fails checksum the checks suggested by #243 ), then we should re-clone it from our cached repo mirror.
At a minimum, this recovery work should be done whenever we run the
forklift plt cache-repo
command (and the respective recovery work should be done for the otherplt cache-*
subcommands. It might also make sense to do it whenever we runforklift plt stage/apply
. Thenforklift plt switch/upgrade
should inherit that recovery work when they cache the pallet's requirements.The text was updated successfully, but these errors were encountered: