Skip to content

Commit

Permalink
Merge pull request #5636 from ThomasWaldmann/fix-put-updates-shadow-i…
Browse files Browse the repository at this point in the history
…ndex

Fix "put updates shadow index"
  • Loading branch information
ThomasWaldmann authored Jan 29, 2021
2 parents e3d8b7c + f079a83 commit dde13d7
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions src/borg/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -1191,13 +1191,9 @@ def put(self, id, data, wait=True):
except KeyError:
pass
else:
self.segments[segment] -= 1
size = self.io.read(segment, offset, id, read_data=False)
self.storage_quota_use -= size
self.compact[segment] += size
segment, size = self.io.write_delete(id)
self.compact[segment] += size
self.segments.setdefault(segment, 0)
# note: doing a delete first will do some bookkeeping,
# like updating the shadow_index, quota, ...
self._delete(id, segment, offset)
segment, offset = self.io.write_put(id, data)
self.storage_quota_use += len(data) + self.io.put_header_fmt.size
self.segments.setdefault(segment, 0)
Expand All @@ -1220,6 +1216,10 @@ def delete(self, id, wait=True):
segment, offset = self.index.pop(id)
except KeyError:
raise self.ObjectNotFound(id, self.path) from None
self._delete(id, segment, offset)

def _delete(self, id, segment, offset):
# common code used by put and delete
self.shadow_index.setdefault(id, []).append(segment)
self.segments[segment] -= 1
size = self.io.read(segment, offset, id, read_data=False)
Expand Down

0 comments on commit dde13d7

Please sign in to comment.