Re: [BUG] copy file result with zero

Dave Young
2011-10-01T23:37:40Z

On Sat, Oct 1, 2011 at 10:39 PM, Ted Ts'o <tytso@mit.edu> wrote:
> On Sat, Oct 01, 2011 at 10:01:35PM +0800, Dave Young wrote:
>> Hi,
>>
>> Weird problem, when I build app from source,
>> make; make install
>> run the command, but got "cannot execute binary file"
>>
>> hexdump shows the installed binary is full of zero
>>
>> Is it related to ext4 fiemap problem described below?
>> http://lwn.net/Articles/429349/
>
> There is general agreement that /bin/cp should not have been relying
> on FIEMAP, and I believe the more recent versions of /bin/cp have
> removed that code by default pending implementation of
> SEEK_HOLE/SEEK_DATA.  That being said, ext4 had a workaround to its
> FIEMAP implementation that landed in 2.6.39, and you're using
> 3.1.0-rc6.

Do you means It should work in 3.1.0-rc6 even with cp which depends fiemap?

>
>> I finally managed to find the way to reproduce this:
>> just cp a elf binary A  to file B, then cp B to file C,  then you will get:
>> A == B != C
>>
>> ie.
>> cp /bin/ls ls1
>> cp ls1 ls2
>>
>> ls2 will be filled with zero
>
> If you add a "sync" between the two copies, does that work around the
> problem?  I bet it will...

Yes, it works

>
> My suggestion is to upgrade to a newer version of coreutils that
> doesn't try to use FIEMAP.

Thanks, will try

>
>                                        - Ted
>

--
Regards
Dave