recover_segment(): don't assume we have an fd for segment

Suggested by @ThomasWaldmann.  Avoiding a complex assumption
should make the code easier to understand and maintain.

(Technically we do have an fd for the segment, because
the only caller opens the segment and checks it before
calling for repair.)
This commit is contained in:
Alan Jenkins 2015-08-12 11:32:12 +01:00
parent d83b919d52
commit 04887439a0
1 changed files with 3 additions and 1 deletions

View File

@ -515,7 +515,9 @@ class LoggedIO(object):
header = fd.read(self.header_fmt.size)
def recover_segment(self, segment, filename):
self.fds.pop(segment).close()
fd = self.fds.pop(segment)
if fd is not None:
fd.close()
# FIXME: save a copy of the original file
with open(filename, 'rb') as fd:
data = memoryview(fd.read())