I also can confirm this bug with version 1:2.8+dfsg-6+deb9u3. ZFS zvols are used as local storage. On Debian Jessie system with 1:2.8+dfsg-3~bpo8+1 migration works fine.
There is no difference between: - virsh migrate --verbose --live --persistent --undefinesource --copy-storage-all $i qemu+tcp://$IP/system tcp://$IP - virsh migrate --verbose --live --persistent --undefinesource --copy-storage-all $i qemu+ssh://$IP/system I could grep some log entries: libvirtd[9856]: 2017-10-04 06:50:37.997+0000: 9858: warning : qemuDomainObjBeginJobInternal:3453 : Cannot start job (query, none) for domain $VMNAME; current job is (none, migration in) owned by (0 <null>, 0 remoteDispatchDomainMigratePrepare3Params) for (0s, 90s) libvirtd[9856]: 2017-10-04 06:50:37.997+0000: 9858: error : qemuDomainObjBeginJobInternal:3465 : Timed out during operation: cannot acquire state change lock (held by remoteDispatchDomainMigratePrepare3Params) error: internal error: unable to execute QEMU command 'drive-mirror': Failed to connect socket: Connection timed out