mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 21:35:45 +02:00
scan: insert toxic matched extents into hash table as they are discovered
When a toxic extent is discovered, insert the offending hash/address/toxic entry into the hash table. When a previously discovered toxic extent is encountered, do nothing, i.e. allow the offending hash/address/toxic entry in the hash table to expire. Previously both inserts were removed from the code, but the former one is required. The latter prevents bees from forgiving toxic extents (or any hash matching one) should they be relocated, deleted, or simply become non-toxic. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
parent
649ae5bb40
commit
77614a0e99
@ -431,6 +431,7 @@ BeesContext::scan_one_extent(const BeesFileRange &bfr, const Extent &e)
|
||||
if (found_addr.is_toxic()) {
|
||||
BEESINFO("WORKAROUND: abandoned toxic match for hash " << hash << " addr " << found_addr);
|
||||
// Don't push these back in because we'll never delete them.
|
||||
// Extents may become non-toxic so give them a chance to expire.
|
||||
// hash_table->push_front_hash_addr(hash, found_addr);
|
||||
BEESCOUNT(scan_toxic_hash);
|
||||
return bfr;
|
||||
@ -447,12 +448,10 @@ BeesContext::scan_one_extent(const BeesFileRange &bfr, const Extent &e)
|
||||
if (resolved.is_toxic()) {
|
||||
BEESINFO("WORKAROUND: abandoned toxic match at found_addr " << found_addr << " matching bbd " << bbd);
|
||||
BEESCOUNT(scan_toxic_match);
|
||||
#if 0
|
||||
// Don't push these back in because we'll never delete them.
|
||||
// Make sure we never see this hash again
|
||||
// Make sure we never see this hash again.
|
||||
// It has become toxic since it was inserted into the hash table.
|
||||
found_addr.set_toxic();
|
||||
hash_table->push_front_hash_addr(hash, found_addr);
|
||||
#endif
|
||||
abandon_extent = true;
|
||||
} else if (!resolved.count()) {
|
||||
BEESCOUNT(scan_resolve_zero);
|
||||
|
Loading…
x
Reference in New Issue
Block a user