diff --git a/src/borg/constants.py b/src/borg/constants.py index a1aa3da98..c2ebd4d7c 100644 --- a/src/borg/constants.py +++ b/src/borg/constants.py @@ -62,6 +62,12 @@ LIST_SCAN_LIMIT = 100000 DEFAULT_SEGMENTS_PER_DIR = 1000 +# Some bounds on segment / segment_dir indexes +MIN_SEGMENT_INDEX = 0 +MAX_SEGMENT_INDEX = 2**32 - 1 +MIN_SEGMENT_DIR_INDEX = 0 +MAX_SEGMENT_DIR_INDEX = 2**32 - 1 + FD_MAX_AGE = 4 * 60 # 4 minutes CHUNK_MIN_EXP = 19 # 2**19 == 512kiB diff --git a/src/borg/repository.py b/src/borg/repository.py index 2910ce261..24079954c 100644 --- a/src/borg/repository.py +++ b/src/borg/repository.py @@ -1319,7 +1319,7 @@ class LoggedIO: safe_fadvise(fd.fileno(), 0, 0, 'DONTNEED') fd.close() - def get_segment_dirs(self, data_dir, start_index=0, end_index=2**30): + def get_segment_dirs(self, data_dir, start_index=MIN_SEGMENT_DIR_INDEX, end_index=MAX_SEGMENT_DIR_INDEX): """Returns generator yielding required segment dirs in data_dir as `os.DirEntry` objects. Start and end are inclusive. """ @@ -1330,7 +1330,7 @@ class LoggedIO: ) return segment_dirs - def get_segment_files(self, segment_dir, start_index=0, end_index=2**32): + def get_segment_files(self, segment_dir, start_index=MIN_SEGMENT_INDEX, end_index=MAX_SEGMENT_INDEX): """Returns generator yielding required segment files in segment_dir as `os.DirEntry` objects. Start and end are inclusive. """ @@ -1343,7 +1343,7 @@ class LoggedIO: def segment_iterator(self, segment=None, reverse=False): if segment is None: - segment = 0 if not reverse else 2 ** 32 - 1 + segment = MIN_SEGMENT_INDEX if not reverse else MAX_SEGMENT_INDEX start_segment_dir = segment // self.segments_per_dir data_path = os.path.join(self.path, 'data') if not reverse: