At Mon, 22 Dec 2014 17:41:33 +0800, $B=y>.$AAz(B wrote: > > [1 <text/plain; UTF-8 (7bit)>] > hi,all, > when i use `qemu-img snapshot -c test-s sheepdog:test` to create a > snapshot of sheepdog vdi,the snapshot's lock not be released. > > root@hty-compute1:~/qemu# ./qemu-img create sheepdog:test 1G > Formatting 'sheepdog:test', fmt=raw size=1073741824 > > root@hty-compute1:~/qemu# dog vdi list > Name Id Size Used Shared Creation time VDI id Copies > Tag > test 0 1.0 GB 0.0 MB 0.0 MB 2014-12-22 17:10 7c2b25 3 > > root@hty-compute1:~/qemu# ./qemu-img snapshot -c test-s sheepdog:test > WARNING: Image format was not specified for 'sheepdog:test' and probing > guessed raw. > Automatically detecting the format is dangerous for raw images, > write operations on block 0 will be restricted. > Specify the 'raw' format explicitly to remove the restrictions. > > root@hty-compute1:~/qemu# dog vdi lock list > VDI | Owner node | Tag > s test | IPv4 ip:172.16.17.200 port:7000 test-s > > when i create a snapshot ,the src vdi will be open and locked,in the > function `sd_open` read the vdi inode info saved in the struct > BDRVSheepdogState ,and in the function `sd_snapshot_create` the vdi inode > information in the struct BDRVSheepdogState will point to an new vdi ,so > when the function `sd_close` be called,the `sd_close` will try to released > the lock of new vdi.In conclusion,the snapshot vdi will lock forever , so > it's will be failed when i try to create a new vdi base on the snapshot. > > root@hty-compute1:~/qemu# ./qemu-img create -b sheepdog:test:test-s > sheepdog:new-vdi > qemu-img: sheepdog:new-vdi: cannot get vdi info, VDI is already locked, > test 0 test-s > > There may be some wrong in the function`sd_snapshot_create`.but I'm not > sure the root cause. > > Thanks, > Xiaolong Xu
Xiaolong, thanks for your report. I'll fix it ASAP. Could you use the dog command as a walkaround? Thanks, Hitoshi