exp/services/ledgerexporter/internal: Fix adjustLedgerRange() #5325
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.
PR Checklist
PR Structure
otherwise).
services/friendbot
, orall
ordoc
if the changes are broad or impact manypackages.
Thoroughness
.md
files, etc... affected by this change). Take a look in the
docs
folder for a given service,like this one.
Release planning
needed with deprecations, added features, breaking changes, and DB schema changes.
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.
What
adjustLedgerRange()
attempts to clamp the start and end ledger for a given ledger range so that they align on the ledgers per file boundary. However, there is a bug in the implementation because the end ledger should be aligned to the last ledger in the file.For example, if we attempt to export ledgers in the range of [1, 50] assuming 64 ledgers per file, the adjusted range should be [2, 63] based on this logic:
https://github.com/stellar/go/blob/master/exp/services/ledgerexporter/internal/exportmanager.go#L54-L64
The current code instead adjusts the range to [2, 64] which is incorrect because 64 is the start ledger of the next ledger file
Known limitations
[N/A]