shuturmurgh opened a new pull request, #20111:
URL: https://github.com/apache/pinot/pull/20111
…d entry
startReplaceSegments checks that every segmentsFrom is still served before
it takes the lineage lock. With forceCleanup=true, the validation inside the
lock reverted overlapping IN_PROGRESS entries but ignored overlapping COMPLETED
ones. If another run's endReplaceSegments completed its entry between the two,
both entries ended up COMPLETED with the same segmentsFrom: brokers drop the
shared source and serve both outputs, so rows are silently duplicated.
Re-validate under the lock and reject the request when a COMPLETED entry
already replaced any of the requested segmentsFrom. This matches the existing
forceCleanup=false check ("replacing a replaced segment"); forceCleanup only
un-blocks incomplete entries.
Add a test that makes a second start pass the existence check, blocks it on
the lineage lock, completes the first run under that lock, and verifies the
second start is rejected without leaving a lineage entry behind.
Instructions:
1. The PR has to be tagged with at least one of the following labels (*):
1. `feature`
2. `bugfix`
3. `performance`
4. `ui`
5. `backward-incompat`
6. `release-notes` (**)
2. Remove these instructions before publishing the PR.
(*) Other labels to consider:
- `testing`
- `dependencies`
- `docker`
- `kubernetes`
- `observability`
- `security`
- `code-style`
- `extension-point`
- `refactor`
- `cleanup`
(**) Use `release-notes` label for scenarios like:
- New configuration options
- Deprecation of configurations
- Signature changes to public methods/interfaces
- New plugins added or old plugins removed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]