DenVdmj / xdelta

Automatically exported from code.google.com/p/xdelta (actual: https://github.com/jmacd/xdelta-devel/)
0 stars 0 forks source link

Spurious 'source file size change' error with large files on Windows (v3.0h_pre0) #3

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Create two slightly different ~5GB files on Windows XP SP2.
2. Run xdelta3 -evv -s file1.bin file2.bin file2.vcdiff

What is the expected output? What do you see instead?

Expect to get a difference file in file2.vcdiff, however, I get this error 
instead:
<snip>
xdelta3: 3258: in 262 KB (3360 KB/sec): out 26 B (333 B/sec): total in 854 
MB: o
ut 83 KB: 78 ms
xdelta3: 3259: in 262 KB (9223372036 GB/sec): out 26 B (9223372036 
GB/sec): tota
l in 854 MB: out 83 KB: 0 ms
xdelta3: 3260: in 262 KB (1872 KB/sec): out 26 B (185 B/sec): total in 854 
MB: o
ut 83 KB: 140 ms
xdelta3: 3261: in 262 KB (1680 KB/sec): out 26 B (166 B/sec): total in 855 
MB: o
ut 83 KB: 156 ms
xdelta3: 3262: in 262 KB (1680 KB/sec): out 26 B (166 B/sec): total in 855 
MB: o
ut 83 KB: 156 ms
xdelta3: 3263: in 262 KB (2097 KB/sec): out 26 B (208 B/sec): total in 855 
MB: o
ut 83 KB: 125 ms
xdelta3: 3264: in 262 KB (9223372036 GB/sec): out 26 B (9223372036 
GB/sec): tota
l in 855 MB: out 83 KB: 0 ms
xdelta3: 3265: in 262 KB (2404 KB/sec): out 26 B (238 B/sec): total in 856 
MB: o
ut 83 KB: 109 ms
xdelta3: 3266: in 262 KB (1872 KB/sec): out 26 B (185 B/sec): total in 856 
MB: o
ut 83 KB: 140 ms
xdelta3: source file size change: file1.bin
xdelta3: getblk failed: XD3_INTERNAL
What version of the product are you using? On what operating system?

Please provide any additional information below.

Version 3.0h running on Windows XP SP2. File1.bin did *not* change during 
the run of the program, despite the error reported by xdelta3. I will re-
run to confirm.

Original issue reported on code.google.com by malay...@gmail.com on 11 Dec 2006 at 9:19

GoogleCodeExporter commented 9 years ago
I expect this means 64bit I/O is broken. Will fix.

Original comment by dotdotis...@gmail.com on 12 Dec 2006 at 6:01

GoogleCodeExporter commented 9 years ago
This appears to be a more general problem, perhaps only on windows. It is not 
limited to files >4GB. However, all of my tests with "smallish" files (under 5 
MB)
have worked just fine.

While differencing two large but sub-4GB files (file1.bin 3,375,965,696 bytes; 
file2.bin 3,358,860,800 bytes), everything starts out okay but then I get this.

C:\temp>xdelta3 -ev -s file1.bin file2.bin file2.VCDIFF
<snip>
xdelta3: 8187: in 262 KB: out 26 B: total in 2146 MB: out 2690 KB: 79 ms
xdelta3: 8188: in 262 KB: out 26 B: total in 2146 MB: out 2690 KB: 62 ms
xdelta3: 8189: in 262 KB: out 26 B: total in 2146 MB: out 2690 KB: 94 ms
xdelta3: 8190: in 262 KB: out 26 B: total in 2147 MB: out 2690 KB: 94 ms
xdelta3: 8191: in 262 KB: out 26 B: total in 2147 MB: out 2690 KB: 16 ms
xdelta3: seek failed: file1.bin: Invalid argument
xdelta3: getblk failed: Invalid argument

I am pretty certain this is not a hardware issue, as this machine is fine in 
all 
other respects. Running diagnostic tools turns up no disk, RAM, or other 
hardware 
issues.

How can I further help diagnose this one? I am not much of a C/C++ programmer, 
but I 
do have Vistual Studio 2003 (with the included C/C++ debugger). What form of 
debug 
output would be most useful?

Finally, do you have a verbal description of the string-matching algorithm used 
in 
Xdelta3 anywhere? Is it similar to the rsync "rolling checksum", or does it 
only 
search within the specified window?

Thanks for the great work... a "standards-compliant" delta compression solution 
is 
sorely needed IMHO.

Original comment by malay...@gmail.com on 12 Dec 2006 at 3:48

GoogleCodeExporter commented 9 years ago
This should be fixed in 3.0i, see http://xdelta.org

Original comment by dotdotis...@gmail.com on 17 Dec 2006 at 12:28

GoogleCodeExporter commented 9 years ago
I confirm this is working with two slightly different 4.4 GB files on windows. 
The 
resulting VCDIFF output was just 586 KB, which seems sensible, as I created 
these 
test files by sticking a 240 KB file in the middle of two hude GB files.

Original comment by malay...@gmail.com on 4 Jan 2007 at 10:56