On 04/13/2018 08:01 AM, Vladimir Sementsov-Ogievskiy wrote: >>> 1. It looks unsafe to use nbd server + backup(sync=none) on same node, >>> synchronization is needed, like in block/replication, which uses >>> backup_wait_for_overlapping_requests, backup_cow_request_begin, >>> backup_cow_request_end. We have a filter driver for this thing, not yet >>> in upstream. >> Is it the case that blockdev-backup sync=none can race with read >> requests on the NBD server? >> >> i.e. we can get temporarily inconsistent data before the COW completes? >> Can you elaborate? > > I'm not sure but looks possible: > > 1. start NBD read, find that there is a hole in temporary image, decide > to read from active image (or even start read) and yield > 2. guest writes to the same are (COW happens, but it doesn't help) > 3. reduce point (1.), read invalid (already updated by 2.) data > > And similar place in block/replication, which uses backup(sync=none) too > is protected from such situation. I'll have to look into this one -- were you seeing problems in practice before you implemented your proprietary filter node? --js -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list