Browse Source

prettier error message when archive gets too big, fixes #5307

Thomas Waldmann 4 years ago
parent
commit
121c327d04
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/borg/archive.py

+ 9 - 1
src/borg/archive.py

@@ -509,7 +509,15 @@ Utilization of max. archive size: {csize_max:.0%}
         metadata = ArchiveItem(metadata)
         data = self.key.pack_and_authenticate_metadata(metadata.as_dict(), context=b'archive')
         self.id = self.key.id_hash(data)
-        self.cache.add_chunk(self.id, data, self.stats)
+        try:
+            self.cache.add_chunk(self.id, data, self.stats)
+        except IntegrityError as err:
+            err_msg = str(err)
+            # hack to avoid changing the RPC protocol by introducing new (more specific) exception class
+            if 'More than allowed put data' in err_msg:
+                raise Error('%s - archive too big (issue #1473)!' % err_msg)
+            else:
+                raise
         while self.repository.async_response(wait=True) is not None:
             pass
         self.manifest.archives[name] = (self.id, metadata.time)