So the short summary of my problem is, the batch file rsync creates is HUGE for a very small change.  The idea is to create workstation image with partimage, update it with some software and send the image update diff over the wire to a large number of destinations over a satellite link, but the batch file updates are several orders of magnitude too large.  I don't know exactly how partimage creates image files, so the bytes/blocks may be ordered differently between my two variants but should be identical, so rsync _should_ be able to handle that right?<br>


<br>Software used: Ubuntu 9.10, <a href="http://fogproject.org" target="_blank">fogproject.org</a> v.28, partimage ??, rsync 3.0.6<br>Hardware: Running as VM in ESXi 4.1 U2, 4 x vCPU and 16 GB RAM, 200 GB disk (150+ GB free)<br>

<br>My testing process:<br>
<ol><li>Use FOG .28 / partimage to capture an image of and already configured Windows XP workstation<br></li><li>Log in to workstation as normal user, download WinSCP (2.9 MB file), shut down machine gracefully</li><li>Use FOG .28/partimage /  to capture the same system again, to a new image file.</li>


<li>FOG uses gzip to compress the partimage file, and we need to compare uncompressed images</li><ol><li>Commands:</li><ol><li>mv image1 image1.gz && mv image2 image2.gz && gunzip image1.gz && gunzip image2.gz</li>


</ol><li>Resultant files:</li><ol><li>image1 size in bytes: 17,062,442,700</li><li>image2 size in bytes: 16,993,256,652</li><li>Difference in raw size in bytes: 69,186,048 (somewhat larger than the 2.9 MB difference I expect due to downloading WinSCP, but not the end of the world)<br>


</li></ol></ol><li>Create rsync diff package</li><ol><li>Command:</li><ol><li>rsync –only-write-batch=img1toimg2_diff image2 image1</li></ol><li>Resultant files:</li><ol><li>img1toimg2_diff size in bytes: 7,315,408,780</li>


<li>img1toimg2_diff.sh in bytes: 58</li><li>Difference is WAY bigger than raw file size. This HAS to be a bug!</li></ol></ol></ol>I thought perhaps specifying the block size might help (it does significantly in non-batch mode) but I get a error and cannot proceed.  I have tried in both rsync v3.0.6 and v3.0.7 to specify the block size, but the result is the same:<br>


<ol><li>Command:</li><ol><li>rsync --block-size=512 –only-write-batch=img1toimg2_diff image2 image1</li></ol><li>Error message:</li><ol><li>
ERROR: Out of memory in receive_sums [sender]</li><li>
rsync error: error allocating core memory buffers (code 22) at util.c(117) [sender=3.0.7]</li></ol></ol><br>I looked at the changelog and haven't seen any updates to util.c since rsync v3.0.6 was released that might address this issue.  So i think that I might be seeing two bugs: 1) huge diff size 2) crashing non-gracefully when trying to use block size with batch mode.<br>


<br>Has anyone experienced this before, am I allowed to specify block size with batch mode?  Any words of wisdom?<br><br>Thanks,<br>Matt Van Mater<br>