[Chandler-dev] Issues with exporting Chandler data

Grant Baillie grant at osafoundation.org
Tue Apr 22 10:09:49 PDT 2008


On 21 Apr, 2008, at 12:36, Phillip J. Eby wrote:
> At 11:57 AM 4/21/2008 -0700, Grant Baillie wrote:
>> The existing code does an open() on the path to backup.chex, and
>> writes the data directly to that file. Unfortunately, this means that
>> your data can get erased, or left in an unusable, incomplete state if
>> Chandler or the OS crashes, or even if you Cancel the progress  
>> dialog.
>> I have a patch that deals with this by writing all the data into an  
>> in- memory buffer, and then writes that out to disk.
>>
>> This means extra memory usage, but seems better than trying to deal
>> with platform-dependent issues that you get when writing to a
>> temporary file, and renaming it to the path you want. I Googled  
>> around
>> some for ways of doing this in python, but didn't find anything
>> useful. Does anyone know of something better?
>
> The simplest thing would probably be just to always write the backup  
> to a unique filename (backup-timestampint.chex?), and then delete  
> older files when done.  The process that reads backup files could  
> then just default to the most-recently modified one.
>
> Writing out the file with a '.tmp' extension that then gets removed  
> would prevent the restore process from reading an incompletely- 
> written file.

Hi, Phillip

Yes, that sounds like a more sensible way of doing things. I'll go  
ahead and do that instead,

Thanks,
--Grant




More information about the chandler-dev mailing list