Limit the number of files deleted in a single tarsnap
call to 500
#57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I had a misconfiguration preventing
tarsnapper
from deletingfiles several years. When I realized it and fixed it, I discovered I
now have 200K+ tarsnap archives to delete. However, when
tarsnapper
tries to call
tarsnap
with 200K+ arguments, it results inOSError: [Errno 7] Argument list too long
. The root cause is bashcomplaining that the bytes length of the entire command exceeds
ARG_MAX
.So this limits the maximum number of files deleted in a single call to
tarsnap
to 500.500 is a somewhat arbitrary batch size. The actual restriction is
typically a bytes limit on the size of the command that the shell will
accept, which can vary widely across OS flavors. Because it's a bytes
limit, this is also dependent on the length of the backup filenames. So
rather than deal with all this complexity, 500 was chosen as a
reasonable balance between safety and speed.