#18 Ensure that file lists are complete before processing
Closed: Fixed 7 years ago Opened 7 years ago by tibbs.

It is possible to get an incomplete file list from the master. Currently this is possible because on the master, the files are copied into place and not moved "atomically".

When this happens, the client just deletes some portion of its repository. And on the next run, will transfer it all back (sans hardlinks).

First pass: make sure the checksum section is present before doig anything. It's probably best to have a call that splits out the file list into separate files named after their section.

Second pass: have create-filelist add some kind of terminator, which the client always expects to find at the end. "\n\n[end]" would work fine.


This should be fixed as of a3cfd52. At least, the file list processing will abort if the checksums section is not present.

There's some more work to do on the server side which isn't strictly necesssary to fix the bug (as the client must still be careful) but which should reduce or eliminate the window enirely.

And if I didn't screw anything up, the server side of this is comitted. However, I can't change the client to look for the end tag until the master mirror is updated with the new code.

The updates are now applied on the master.

And the code requiring the end marker (to be in the last two lines) is now committed.

And the code requiring the end marker (to be in the last two lines) is now committed.

@tibbs changed the status to Fixed

7 years ago

Metadata Update from @tibbs:
- Issue untagged with: in progress

6 years ago

Login to comment on this ticket.

Metadata