Repository navigation
fix(core): close traversal iterators on failure - #3317
Merged
Merged
Conversation
- close the prepared iterator on every consumer exit - keep the original failure and suppress closing errors - verify real native cursor ownership after caller cleanup
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3317 +/- ##
============================================
+ Coverage 52.42% 52.46% +0.03%
+ Complexity 2273 2009 -264
============================================
Files 762 762
Lines 67400 67431 +31
Branches 9138 9151 +13
============================================
+ Hits 35333 35376 +43
+ Misses 28525 28521 -4
+ Partials 3542 3534 -8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- integrate current master and resolve test suite conflicts - stop blocked producers when traversal workers fail - retain the primary failure across worker cleanup - include traversal algorithms in coverage reports
- propagate clean consumer stop to producer loops - retain terminal business and cleanup failures - verify bounded lazy production with real native cursors
MrJs133
approved these changes
Oct 12, 2026
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.
An OLTP edge consumer could leave its active iterator open after failure, early stop or interruption. A full queue could also keep its producer blocked after the worker failed, and a later transaction cleanup failure could replace the original business error.
Close the owned iterator in
finally, using the original input when preparation fails. Stop failed consumer queues so blocked producers can exit, propagate a normal stop so producers stop reading inputs, retain the first terminal error, and attach later cleanup failures as suppressed exceptions. Preserve the worker transaction binding and completion cleanup from #3314 while integrating current master and both native test registrations.Remove the global algorithm classfile exclusion from the existing JaCoCo report. The same real native execution data now reports the traversal's exercised and unexercised code; coverage thresholds and upload selection are unchanged.
Validation: deterministic before/after controls with assertions enabled, real RocksDB failure/stop/interruption/capacity regressions, bounded full-queue producer/worker tests, focused Maven consumer tests, Java 17 formatting, clean reactor compilation, and three independent final reviews passed. The original database and column families reopen with
createIfMissing=false. New-head CI is pending.The runtime contract is documented in
docs/storage-lifecycle.md. This validates active iterators and the tested standard lazy BFS queue path; complete C04 and distributed acceptance remain separate. Source: the original org #295 branch. No public configuration or dependency changes.