qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Bug 1776920] Re: qemu-img convert on Mac OSX creates c


From: Eric Blake
Subject: Re: [Qemu-devel] [Bug 1776920] Re: qemu-img convert on Mac OSX creates corrupt images
Date: Fri, 7 Sep 2018 15:04:22 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 09/07/2018 01:04 PM, Yan-Jie Wang wrote:
I have done some experiments and find out that
the behavior of lseek with whence set to SEEK_DATA is different from the 
behavior of Linux's lseek.

If the supplied offset is in the middle of a data region, it returns the
start of the next data region.  There may be many data regions in a big
file even though it has no hole.

return value of lseek with whence set to SEEK_DATA:

|--(offset)--Data----|(return value)----Data----|
|--(offset)--Data----|----Hole----|(return value)----Data----|


** Patch added: "macOS-lseek.patch"
    
https://bugs.launchpad.net/qemu/+bug/1776920/+attachment/5186138/+files/macOS-lseek.patch

While a developer can chase a URL, our CI tools can't. Can you please also send that patch directly to address@hidden, so that it gets the same level of review as other patches?

But I am very reluctant to take your patch. MacOS is flat-out buggy and in violation of the specification of lseek(SEEK_DATA), so making all applications work around their bug is not going to scale as well as having them fix their bug in the first place.

Here's the proposed POSIX specification for what lseek(SEEK_DATA) is supposed to do:
http://austingroupbugs.net/view.php?id=415#c862

That text has been present for 7 years now - so anyone implementing SEEK_DATA should really be paying attention to interoperability with that text.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]