On 08/04/2017 05:20 AM, Kevin Wolf wrote: >>> >>> Hmm, I wonder. https://bugzilla.redhat.com/show_bug.cgi?id=1465320 >>> details a failure when starting qemu with a read-write NBD disk, then >>> taking several snapshots (nbd <- snap1 <- snap2 <- snap3), then where >>> intermediate commit (snap2 into nbd) works but live commit (snap3 into >>> nbd) fails with a message that nbd does not support reopening. I'm >>> presuming that your series may help to address that; I'll give it a spin >>> and see what happens. >> >> Nope, even with your patches, I'm still getting: >> >> {'execute':'block-commit','arguments':{'device':'drive-image1','top':'bar2'}} >> {"return": {}} >> {"timestamp": {"seconds": 1501811285, "microseconds": 439748}, "event": >> "BLOCK_JOB_COMPLETED", "data": {"device": "drive-image1", "len": >> 2097152, "offset": 2097152, "speed": 0, "type": "commit"}} >> >> {'execute':'block-commit','arguments':{'device':'drive-image1','top':'bar3'}} >> {"error": {"class": "GenericError", "desc": "Block format 'nbd' used by >> node '#block048' does not support reopening files"}} > > That's simply NBD not implementing .bdrv_reopen_*. In other words, not a > bug, but just a missing feature.
But why does intermediate commit work, while live commit fails? Both require that the image being committed into be read-write, and the NBD image was opened read-write (even if it can be treated as read-only for the duration of time that it is a backing image). I understand missing .bdrv_reopen making it impossible to change read-only to read-write, but when missing it means you can never change read-write down to the tighter read-only originally, then what is making live commit different from intermediate in not being able to handle it? -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature