FilesystemObjectProcessors.process_pipe: also add same exception handler there

This commit is contained in:
Thomas Waldmann 2023-02-12 21:25:44 +01:00
parent c9dbe323e3
commit 71f8dd3a17
No known key found for this signature in database
GPG Key ID: 243ACFA951F78E01
1 changed files with 14 additions and 5 deletions

View File

@ -1433,11 +1433,20 @@ class FilesystemObjectProcessors:
item.uid = uid
if gid is not None:
item.gid = gid
self.process_file_chunks(item, cache, self.stats, self.show_progress, backup_io_iter(self.chunker.chunkify(fd)))
item.get_size(memorize=True)
self.stats.nfiles += 1
self.add_item(item, stats=self.stats)
return status
try:
self.process_file_chunks(
item, cache, self.stats, self.show_progress, backup_io_iter(self.chunker.chunkify(fd))
)
except BackupOSError:
# see comments in process_file's exception handler, same issue here.
for chunk in item.get("chunks", []):
cache.chunk_decref(chunk.id, self.stats, wait=False)
raise
else:
item.get_size(memorize=True)
self.stats.nfiles += 1
self.add_item(item, stats=self.stats)
return status
def process_file(self, *, path, parent_fd, name, st, cache, flags=flags_normal):
with self.create_helper(path, st, None) as (item, status, hardlinked, hl_chunks): # no status yet