[Box Backup] Release Candidate 3

Ben Summers boxbackup@fluffy.co.uk
Sun, 19 Feb 2006 10:21:38 +0000


On 18 Feb 2006, at 19:38, Chris Wilson wrote:

> Hi Stefan,
>
>> I also think there should be some kind of backwards compatibility,  
>> but remembering this is the first "collaborative" release with the  
>> Windows source merged in etc the backwards compatibility  
>> requirement could be "waived" for this release I think. However,  
>> IMHO it should be a requirement for future releases.
>
> I can't see any good reason to break it for this release. Only new  
> features have been added to the protocol. Until I fixed keepalives  
> and enabled them in my config, the new clients were working fine  
> with my 0.09 server. Likewise, I can't see any reason that a 0.10  
> server shouldn't work with 0.09 clients in any configuration.


I "broke" backwards compatibility by bumping the protocol number  
because...

* A 0.10 server will appear talk to a 0.09 server just fine.

* But if it does a long diff operation, it will send a keep alive  
message.

* At this point, the 0.09 server will exception and terminate the  
connection.

* The backup will never proceed past this point.

* The administrator may not realise unless they're keeping a careful  
eye on the logs.

The other alternative is to get the client to work out which version  
it's talking to, and behave accordingly. The Version command is the  
appropriate mechanism to do this (and can be done carefully) but it's  
another code path to be tested carefully and to potentially go wrong,  
an automated test is difficult, and I'm not accepting new features  
right now anyway.

Yes, something could be done, but it's not the most conservative  
choice. And since we're writing something which is supposed to look  
after people's precious data, we have to take decisions which result  
in the most reliable and predictable system.

Ben