[Box Backup] TLSReadFailed

Ben Summers boxbackup@fluffy.co.uk
Sun, 13 Mar 2005 11:25:01 +0000


On 12 Mar 2005, at 18:43, Chris Wilson wrote:

> Hi Ben and all,
>
> I'm currently working on implementing restore functionality in Boxi, 
> and hope to have it ready for a new release within a week or so. 
> However, I have come across some interesting issues on which I would 
> like to ask your help.
>
> Firstly, I'm not sure that I understand the difference between the Get 
> and Restore commands in bbackupquery, but it appears that Get only 
> works on files, and Restore only works on directories? If so, could 
> they not be combined into a single command that works on either files 
> or directories?

If you look at the code, restore is very different from get. Get just 
retrieves file data, and decodes it. Restore is a restartable recursive 
process which operates on directories of files.

>
> Secondly, if I try to Restore a file (not a directory) by object ID 
> using bbackupquery, then the program aborts with a TLSReadFailed error 
> and no further information. An exception object seems to have been 
> sent from the server (a BadDirectoryFormat exception) but bbackupquery 
> ignored it and threw a protocol error. Is this worth fixing? It seems 
> like a bug to me.

You are asking the server to read a file object, and interpret it as a 
directory. BadDirectoryFormat seems a perfectly reasonable error to 
throw.

>
> Thirdly, if the server throws any kind of exception, which results in 
> a TLSReadFailed on the client, the stream becomes unusable after that 
> point and must be closed. This is rather annoying for interactive 
> applications. Would it be hard to fix the client to handle exceptions 
> properly and keep the stream alive?

Yes, I can see that would be annoying. It won't be very difficult to 
propagate exceptions from the server to the client properly, and then 
allow it to continue being used.

Ben