Repository navigation
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #18838 +/- ##
============================================
+ Coverage 45.91% 45.92% +0.01%
Complexity 712 712
============================================
Files 5502 5502
Lines 398775 398778 +3
Branches 51967 51967
============================================
+ Hits 183080 183129 +49
+ Misses 215695 215649 -46 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
When a consensus subscription event reaches the existing 10-NACK poison threshold, the queue force-ACKs and disposes of it without committing its outstanding writer-progress mapping. Later ACKs for that writer cannot advance the contiguous checkpoint past the discarded event. This can hold back WAL reclamation based on committed progress and cause already handled events to be replayed after recovery.
Commit poisoned events through the ordinary
commitAndRefreshWalRetentionpath before disposing of them in explicit NACK, silent client NACK, and timeout recycling. If the commit is rejected, requeue the event and retain its tablet memory for retry. The existing poison-event policy and threshold are preserved.Validation
ConsensusPrefetchingQueueTest,ConsensusSubscriptionCommitStateTest, andConsensusPrefetchingQueueSeekTest. The new cases also verify that a later data event remains committable and that retained memory is released only after a successful commit.mvn -Ddevelocity.off=true -nsu test-compile -DskipTestsand the same command with-P with-zh-locale: both passed.git diff --check: passed.mvn -Ddevelocity.off=true -nsu -pl iotdb-core/datanode -am test \ -Dtest=ConsensusPrefetchingQueueTest,ConsensusSubscriptionCommitStateTest,ConsensusPrefetchingQueueSeekTest \ -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false \ -Diotdb.test.skip=false -Diotdb.ut.skip=falseThis PR has:
Key changed classes:
ConsensusPrefetchingQueue,ConsensusPrefetchingQueueTest.