merlimat opened a new pull request, #25689: URL: https://github.com/apache/pulsar/pull/25689
## Summary Coverage gap from the V5 audit — the plumbing for these knobs was wired but never exercised in any test, so a regression that broke the V5 → v4 mapping would have shipped silently. Pins the contract for four flow-control settings. | Test class | Tests | What it covers | |---|---|---| | `V5ConsumerPriorityLevelTest` | 2 | Behavioral: high + low priority consumers on a Shared subscription. With prefetch drained by acks, the high-priority consumer receives every message; with prefetch full (no acks), the broker overflows to the low one. Single-segment topic to keep per-segment dispatch deterministic. | | `V5ConsumerReceiverQueueSizeTest` | 2 | `receiverQueueSize(int)` propagates from the V5 builder to every per-segment v4 `ConsumerImpl` — verified via reflection on `segmentConsumers` + `ConsumerBase.getCurrentReceiverQueueSize()`. Covers single-segment and 3-segment topics. | | `V5ProducerFlowControlTest` | 4 | `sendTimeout(Duration)` and `blockIfQueueFull(boolean)` propagate from the V5 builder to every per-segment v4 `ProducerImpl` — verified via reflection on `segmentProducers` + `ProducerBase#conf`. Tests cover `blockIfQueueFull(true)`, `blockIfQueueFull(false)`, single-segment `sendTimeout`, and 3-segment `sendTimeout`. Sends warm-up messages before reading state because V5 segment producers are created lazily on first send. | **Why config-propagation tests for the producer knobs and not behavioral?** Behavioral verification of the actual timeout-firing and queue-full paths lives in the v4 test suite (`SimpleProducerConsumerTest.testSendTimeout` etc.); those tests stop the broker mid-send to force the pending-queue overflow / timeout, which the in-process `SharedPulsarBaseTest` cluster used here cannot do. The plumbing tests added here suffice as a regression guard for the V5 → v4 mapping. ## Test plan - [x] All 8 new tests pass (8 of 8). - [x] Full V5 broker test suite green (133/133). - [x] `pulsar-broker` checkstyle clean. -- 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]
