I have the same issue in 2 different and independent nodes Version 3.21:
Once a container has some snapshots, if I try to copy the container without the --container-only parameter, the commands never completes executing.
Then if I break out of the command or I login with an additional ssh connection and I lxc list, I can see the new copied container but I am unable to start it:
$ lxc copy original acme (command never completes but container seems to be created along with the snapshots present in the original container)
$ lxc start acme
Error: Common start logic: Failed to run: zfs mount tank/containers/acme: cannot open ‘tank/containers/acme’: dataset does not exist
lxc info --show-log acme for more info
$ lxc delete acme/snap1
Error: Failed to run: zfs get -H -p -r -o value clones tank/containers/acme-DB@snapshot-snap1: cannot open ‘tank/containers/acme-DB@snapshot-snap1’: dataset does not exist
$ lxc info --show-log acme
Created: 2020/03/04 08:43 UTC
mautic-23-jan-2020 (taken at 2020/01/22 23:55 UTC) (stateless)
snap0 (taken at 2020/01/24 02:58 UTC) (stateless)
(log is empty)
Since I cannot delete the snapshots on the acme container, I cannot get rid of this non-starting container.
With --container-only everything works just fine…
NOTE FOR LXD DEVS: Why not make --container-only the default and have a command --with-snapshots in order to copy the snapshots?
99% of the time I only want to copy the current state, only 1% of the time I need to copy along the snapshots (but maybe this is just me).