Skip to content

[split 7/22] deduplicator: fix eviction bug that never added keys to the FIFO pool, add concurrency test - #1362

Open
minguyen9988 wants to merge 1 commit into
2.10.0from
omniwatcher/split-07-dedup
Open

[split 7/22] deduplicator: fix eviction bug that never added keys to the FIFO pool, add concurrency test#1362
minguyen9988 wants to merge 1 commit into
2.10.0from
omniwatcher/split-07-dedup

Conversation

@minguyen9988

Copy link
Copy Markdown
Collaborator

DeDuplicator.updateDedupePool() iterated over ALL topics' pools and attempted matchingQueue.remove(key) on an element already removeFirst()d - while never adding the new key to the current topic's queue. Eviction therefore never tracked insertions and the dedup map could grow without bound. Now: key appended to the per-topic FIFO, oldest entries evicted (from both queue and map) when maxPoolSize is exceeded. DeDuplicatorConcurrencyTest exercises the pool under parallel writers; DeDuplicatorTest expanded.

Part of the split of #1353 into independently mergeable sub-PRs (each <= 10 files), so the 2.10.0 branch can absorb the fixes incrementally.

Split out of #1353, which this series replaces. Each sub-PR is <= 10 files; the union of all 22 reproduces the #1353 tree exactly (verified by tree SHA).

…, add concurrency test

DeDuplicator.updateDedupePool() iterated over ALL topics' pools and attempted matchingQueue.remove(key) on an element already removeFirst()d - while never adding the new key to the current topic's queue. Eviction therefore never tracked insertions and the dedup map could grow without bound. Now: key appended to the per-topic FIFO, oldest entries evicted (from both queue and map) when maxPoolSize is exceeded. DeDuplicatorConcurrencyTest exercises the pool under parallel writers; DeDuplicatorTest expanded.

Part of the split of #1353 into independently mergeable sub-PRs (each <= 10 files), so the 2.10.0 branch can absorb the fixes incrementally.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant