With automatic snapshots feature landed and to be released with 2.39, snapd now creates a snapshot of the snap data and configuration automatically on
snap remove and keeps it around for 31 days by default. It has been observed that because of that some snaps are now slow to remove if they create lots of data (one example is multipass snap, with 2GB+ of data).
While the feature can be disabled with
snap set core snapshots.automatic.retention=no, it acts as a global flag. Therefore after a short discussion about the issue it has been proposed that
remove command grows a new flag that disables automatic snapshot when removing the given snap only, e.g:
snap remove --purge myfatsnap
Any thoughs/suggestions about the new flag are welcome and if there is no disagreement, I’ll implement it soon.
I support having a
--purge flag, for exactly the case you described, removing multipass which generates gigabytes of data.
Sounds reasonable to me and I can’t think of any downsides to having this flag. The name of the flag seems obvious and a good choice.
Thanks for feddback! The tentative PR is here: https://github.com/snapcore/snapd/pull/6870
Thanks for this, I was just about to ask for just such a thing. The snap remove now takes too long for my tastes due to it creating a snapshot for the data.
One quick comment on this older item. Is this behaviour in the documents? I went searching for this as someone pointed out that a user would never know this behavior by default.
EDIT Found it. In the snapshot portion of the docs. I think it’s pretty deep in there for an average user though.
Edit 2 I’m taking a Mulligan on this one. It is in the getting started guide as well
You have a point though, it should probably be documented (or referenced) close to snap remove as well. CC @degville
Thanks for flagging this (cc @bashfulrobot). It’s an option that should definitely be more discoverable. I’ve added it to the Getting started guide, and I’ve also added some hopefully better navigation on that page to help see what information it includes. I’ll add some quick details on snapshots too.
No problem. It just came up as I was having a friendly discussion with a user who tends to be a little negative towards the tech.
I would suggest that things that are critical to a users data may even warrant some visibility within the cli tool
--help command. Maybe even under the “remove” button in gnome software.
The reality is, there are users who will not go search out the docs, or maybe even be a new user to Linux who may not realise where to go and look. So putting the data sensitive info into a spot that is maybe a little more intuitive - could be a good thing? ¯_(ツ)_/¯
I know that might be a stretch goal, or require other teams, but I am just spit-balling here.
Incidentally, the cli (snap remove --help) was updated just a few days ago with https://github.com/snapcore/snapd/pull/8782 (will become available with snapd 2.46 I suppose).
That is the first place I would hope to find it.
Btw, I couldn’t remove
lxd at all due to this automatic snapshot thing. It tried to do something for several hours and then failed. I’m glad Google took me here and
--purge was an acceptable solution to a problem that shouldn’t exist.
Right, there are some extreme cases (lxd, multipass…) where it would probably make sense to ask/warn about potentially huge snapshot (not doing automatic snapshots by default because of extreme cases isn’t a good idea IMHO; for users wanting that there is always “snapshots.automatic.retention=no” config option mentioned earlier).
FWTW, there are some other improvements in the works such as not attempting an automatic snapshot if disk space is low and doesn’t guarantee successful operation.