Re: [Burp-users] burp not resuming partial files?
Brought to you by:
grke
|
From: Graham K. <gr...@gr...> - 2015-03-03 00:52:34
|
On Tue, March 3, 2015 9:27 am, Benjamin Siggel wrote: > I'm using burp for a set of mobile computers (windows 7), backing up > over Internet. Some of them are working fine, some of them never > finishing the backup. > > The backup-log says: > >> Resume partial new file: xxxx >> Actually, no - just treat it as completely new > > The files are always outlook-pst files which can - of course - be very > big. So they are always uploaded again but never complete, as the > computer is not on all time. > > I think burp is using some kind of librsync for backup up only the > changed parts of the file? Is there a magic switch I forgot to hit? :) > > Regards, > Benjamin. Hello, The following assumes you haven't set librsync=0 anywhere, and you are using working_dir_recovery_method=resume. Some background information: ... The way librsync works is that the original file on the server is broken into fixed length chunks, which are checksummed to make 'signatures'. The signatures are sent to the client. The client scans the new file for the same signatures. A 'delta' is sent back to the server, which contains any new chunks, and the location of any existing chunks in the new file. The server can apply the delta to the original file to generate the new file. In the case where some of the delta has been copied to the server, and the client has been turned off or disconnected, and then the client connects again: The server finds the partial delta and considers what to do. There is a mechanism that tries to combine the delta and the original file and then use that to generate the signatures. This didn't seem to work very well - I had reports of a delta file just getting bigger all the time. So I ended up adding a configuration to turn it off by default. To turn it on again, set 'resume_partial=1' in the server conf. ... None of the above is happening in your case. In your case, the first attempt at transferring the whole file is failing, and the client is connecting again. "Resume partial new file: xxxx" The server considers what to do. If the 'resume_partial' option is on, it will use the partial new file as the source of librsync signatures. In your case, 'resume_partial' is off, so the server says: "Actually, no - just treat it as completely new" Note that 'resume_partial' only affects the file that was being transferred when the backup was interrupted. Everything successfully transferred up to that point is retained with working_dir_recovery_method=resume. In burp-2 protocol 1, I have completely removed the whole partial resume feature because it made the code very complicated. Protocol 2 would be a better choice for this kind of situation (once it is ready). |