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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to