merlimat opened a new pull request, #25609:
URL: https://github.com/apache/pulsar/pull/25609
## Summary
End-to-end coverage for the scalable-topic-specific behaviors of the V5
client — the bits not exercised by the basics + producer/consumer-knobs PRs:
- **V5KeyRoutingTest** — same-key messages always land on the same segment
(verified via per-key order preservation through a 4-segment topic), and a
varied key set on a 4-segment topic flows end-to-end without drop or
duplication.
- **V5SegmentSplitTest** — admin-triggered split with a producer + consumer
running through it; messages produced before and after the split are all
delivered exactly once.
- **V5SegmentMergeTest** — same shape, with an admin-triggered merge of two
adjacent segments mid-flow.
- **V5DAGFollowingTest** — existing subscription drains across a chain of
splits (split → split-a-child) without missing any generation.
- **V5CumulativeAckTest** — three scenarios for
`StreamConsumer.acknowledgeCumulative` on a multi-segment topic:
- Single ack on the last received id → empty backlog on re-attach
(position vector covers every segment).
- Mid-stream ack → re-attach replays only the unacked tail.
- Cross-split ack → ack parent fully, split, ack children, re-attach sees
no backlog (cursor stays anchored across the sealed-parent / active-children
boundary).
### Documented gap
`V5DAGFollowingTest` notes a separate gap not asserted here: a brand-new
`EARLIEST` subscription created *after* a split currently only sees the active
children's data, not the sealed parent. Replaying sealed-segment data for new
subscriptions is a separate feature.
## Test plan
- [x] `./gradlew :pulsar-broker:test --tests
\"org.apache.pulsar.client.api.v5.V5KeyRoutingTest\"`
- [x] `./gradlew :pulsar-broker:test --tests
\"org.apache.pulsar.client.api.v5.V5SegmentSplitTest\"`
- [x] `./gradlew :pulsar-broker:test --tests
\"org.apache.pulsar.client.api.v5.V5SegmentMergeTest\"`
- [x] `./gradlew :pulsar-broker:test --tests
\"org.apache.pulsar.client.api.v5.V5DAGFollowingTest\"`
- [x] `./gradlew :pulsar-broker:test --tests
\"org.apache.pulsar.client.api.v5.V5CumulativeAckTest\"`
## Matching PR
- [ ] No matching PR.
### area/test
--
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]