diff --git a/src/borg/_hashindex.c b/src/borg/_hashindex.c index 799fbcd4b..dd3b1c323 100644 --- a/src/borg/_hashindex.c +++ b/src/borg/_hashindex.c @@ -586,6 +586,16 @@ hashindex_set(HashIndex *index, const unsigned char *key, const unsigned char *v if(!hashindex_resize(index, index->num_buckets)) { return 0; } + /* we have just built a fresh hashtable and removed all tombstones, + * so we only have EMPTY or USED buckets, but no DELETED ones any more. + */ + idx = start_idx = hashindex_index(index, key); + while(!BUCKET_IS_EMPTY(index, idx)) { + idx++; + if (idx >= index->num_buckets){ + idx -= index->num_buckets; + } + } } } ptr = BUCKET_ADDR(index, idx);