After cancelling the automatic update of lxd in snap, subsequent update operations are no longer available

I noticed yesterday that my server’s DISKIO was high.
I found out that the cause of this was that lxd was being updated automatically.
However, this update was still running 6 hours later, which I considered abnormal and cancelled the update task in this snap.

server@server1:~$ snap changes 
ID   Status   Spawn                   Ready                   Summary
143  Undoing  yesterday at 15:29 JST  -                       Auto-refresh snap "lxd"
144  Done     yesterday at 21:48 JST  yesterday at 21:48 JST  Refresh all snaps: no updates
145  Done     today at 12:29 JST      today at 12:29 JST      Refresh all snaps: no updates

server@server1:~$ snap tasks 143
Status   Spawn                   Ready                   Summary
Undo     yesterday at 15:29 JST  yesterday at 15:29 JST  Ensure prerequisites for "lxd" are available
Undo     yesterday at 15:29 JST  yesterday at 15:29 JST  Download snap "lxd" (19164) from channel "latest/candidate"
Undo     yesterday at 15:29 JST  yesterday at 15:29 JST  Fetch and check assertions for snap "lxd" (19164)
Undo     yesterday at 15:29 JST  yesterday at 15:29 JST  Mount snap "lxd" (19164)
Undo     yesterday at 15:29 JST  yesterday at 15:29 JST  Run pre-refresh hook of "lxd" snap if present
Undoing  yesterday at 15:29 JST  yesterday at 15:29 JST  Stop snap "lxd" services
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Remove aliases for snap "lxd"
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Make current revision for snap "lxd" unavailable
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Copy snap "lxd" data
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Setup snap "lxd" (19164) security profiles
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Make snap "lxd" (19164) available to the system
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Automatically connect eligible plugs and slots of snap "lxd"
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Set automatic aliases for snap "lxd"
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Setup snap "lxd" aliases
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Run post-refresh hook of "lxd" snap if present
Undone   yesterday at 15:29 JST  yesterday at 21:34 JST  Start snap "lxd" (19164) services
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Remove data for snap "lxd" (19009)
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Remove snap "lxd" (19009) from the system
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Clean up "lxd" (19164) install
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Run configure hook of "lxd" snap if present
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Run health check of "lxd" snap
Hold     yesterday at 15:29 JST  yesterday at 21:24 JST  Consider re-refresh of "lxd"

I thought that the failure of the automatic update was due to the fact that the lxd channel was a candidate, so I tried to overwrite it with stable after canceling.
However, I am told that this operation is not possible because the automatic update is still running.
How do I get the lxd channel back to stable? Please help me.

server@server1:~$ uname -a
Linux server1 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux


server@server1:~$ snap list
Name      Version    Rev    Tracking          Publisher   Notes
core      16-2.48.2  10583  latest/stable     canonical✓  core
core18    20201210   1944   latest/stable     canonical✓  base
lxd       4.10       19085  latest/candidate  canonical✓  -
microk8s  v1.19.5    1856   1.19/stable       canonical✓  classic


server@server1:~$ sudo snap refresh lxd 
error: snap "lxd" has "auto-refresh" change in progress
server@server1:~$ sudo snap refresh lxd --stable 
error: snap "lxd" has "auto-refresh" change in progress
server@server1:~$ sudo snap stop lxd
error: snap "lxd" has "auto-refresh" change in progress
server@server1:~$ sudo snap abort 143
server@server1:~$ sudo snap refresh lxd --stable 
error: snap "lxd" has "auto-refresh" change in progress

Hi,

It would be worth posting this over at:

As they should be able to help with a snap upgrade that is stuck.

Unless @stgraber has any insights into how to fix this?

You can use snap change ID to get more details as to what’s going on.
ps fauxww may also be useful to see if there’s anything that’s looking stuck.

I was able to solve this problem.
Today’s automatic update took place again, and the same situation as last time.

server@server1:~$ snap changes 
ID   Status  Spawn                     Ready               Summary
143  Error   4 days ago, at 15:29 JST  today at 00:34 JST  Auto-refresh snap "lxd"
146  Doing   today at 00:39 JST        -                   Auto-refresh snap "lxd"

In the details, I found that it repeatedly retries to start lxd.

server@server1:~$ snap change 146
Status  Spawn               Ready               Summary
Done    today at 00:39 JST  today at 00:39 JST  Ensure prerequisites for "lxd" are available
Done    today at 00:39 JST  today at 00:39 JST  Download snap "lxd" (19164) from channel "latest/candidate"
Done    today at 00:39 JST  today at 00:39 JST  Fetch and check assertions for snap "lxd" (19164)
Done    today at 00:39 JST  today at 00:39 JST  Mount snap "lxd" (19164)
Done    today at 00:39 JST  today at 00:39 JST  Run pre-refresh hook of "lxd" snap if present
Done    today at 00:39 JST  today at 00:39 JST  Stop snap "lxd" services
Done    today at 00:39 JST  today at 00:39 JST  Remove aliases for snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Make current revision for snap "lxd" unavailable
Done    today at 00:39 JST  today at 00:39 JST  Copy snap "lxd" data
Done    today at 00:39 JST  today at 00:39 JST  Setup snap "lxd" (19164) security profiles
Done    today at 00:39 JST  today at 00:39 JST  Make snap "lxd" (19164) available to the system
Done    today at 00:39 JST  today at 00:39 JST  Automatically connect eligible plugs and slots of snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Set automatic aliases for snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Setup snap "lxd" aliases
Done    today at 00:39 JST  today at 00:39 JST  Run post-refresh hook of "lxd" snap if present
Doing   today at 00:39 JST  -                   Start snap "lxd" (19164) services
Do      today at 00:39 JST  -                   Remove data for snap "lxd" (19009)
Do      today at 00:39 JST  -                   Remove snap "lxd" (19009) from the system
Do      today at 00:39 JST  -                   Clean up "lxd" (19164) install
Do      today at 00:39 JST  -                   Run configure hook of "lxd" snap if present
Do      today at 00:39 JST  -                   Run health check of "lxd" snap
Doing   today at 00:39 JST  -                   Consider re-refresh of "lxd"

So, I tried the following command, and the update was successful.

server@server1:~$ sudo systemctl stop snap.lxd.daemon.service 
server@server1:~$ sudo systemctl stop snap.lxd.daemon.unix.socket 

server@server1:~$ snap change 146
Status  Spawn               Ready               Summary
Done    today at 00:39 JST  today at 00:39 JST  Ensure prerequisites for "lxd" are available
Done    today at 00:39 JST  today at 00:39 JST  Download snap "lxd" (19164) from channel "latest/candidate"
Done    today at 00:39 JST  today at 00:39 JST  Fetch and check assertions for snap "lxd" (19164)
Done    today at 00:39 JST  today at 00:39 JST  Mount snap "lxd" (19164)
Done    today at 00:39 JST  today at 00:39 JST  Run pre-refresh hook of "lxd" snap if present
Done    today at 00:39 JST  today at 00:39 JST  Stop snap "lxd" services
Done    today at 00:39 JST  today at 00:39 JST  Remove aliases for snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Make current revision for snap "lxd" unavailable
Done    today at 00:39 JST  today at 00:39 JST  Copy snap "lxd" data
Done    today at 00:39 JST  today at 00:39 JST  Setup snap "lxd" (19164) security profiles
Done    today at 00:39 JST  today at 00:39 JST  Make snap "lxd" (19164) available to the system
Done    today at 00:39 JST  today at 00:39 JST  Automatically connect eligible plugs and slots of snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Set automatic aliases for snap "lxd"
Done    today at 00:39 JST  today at 00:39 JST  Setup snap "lxd" aliases
Done    today at 00:39 JST  today at 00:39 JST  Run post-refresh hook of "lxd" snap if present
Done    today at 00:39 JST  today at 16:32 JST  Start snap "lxd" (19164) services
Done    today at 00:39 JST  today at 16:32 JST  Remove data for snap "lxd" (19009)
Done    today at 00:39 JST  today at 16:32 JST  Remove snap "lxd" (19009) from the system
Done    today at 00:39 JST  today at 16:32 JST  Clean up "lxd" (19164) install
Done    today at 00:39 JST  today at 16:32 JST  Run configure hook of "lxd" snap if present
Done    today at 00:39 JST  today at 16:32 JST  Run health check of "lxd" snap
Done    today at 00:39 JST  today at 16:33 JST  Consider re-refresh of "lxd"

......................................................................
Consider re-refresh of "lxd"

2021-02-02T16:33:00+09:00 INFO No re-refreshes found.

server@server1:~$ sudo snap refresh lxd --stable
lxd 4.10 from Canonical✓ refreshed
server@server1:~$ snap list
Name      Version    Rev    Tracking       Publisher   Notes
core      16-2.48.2  10583  latest/stable  canonical✓  core
core18    20201210   1944   latest/stable  canonical✓  base
lxd       4.10       19164  latest/stable  canonical✓  -
microk8s  v1.19.5    1856   1.19/stable    canonical✓  classic

I have solved this problem, but the question arose if this behavior occurs when lxd may not accept a stop command from snap.
Thank you for your help.