void-ptr974 opened a new pull request, #25950:
URL: https://github.com/apache/pulsar/pull/25950

   ### Motivation
   
   `ReplicatorTest.testResumptionAfterBacklogRelaxed` can time out after the 
remote backlog quota is relaxed. The test previously set the namespace backlog 
quota to `1` byte. That reliably forces the remote topic over quota, but it 
also leaves too little room for the pending replicated message after the 
existing backlog is drained. As a result, the replicator producer can keep 
being rejected with `TopicBacklogQuotaExceededException` and wait for another 
reconnect backoff window, causing a false test failure.
   
   ### Modifications
   
   - Seed the remote cluster with two replicated messages and derive the test 
quota from the actual remote backlog size.
   - Set the quota just below the current remote backlog so replication is 
stopped while the existing backlog is present, but can resume after the backlog 
is drained.
   - Replace the fixed sleep with explicit Awaitility checks for the remote 
topic entering and leaving the backlog quota exceeded state.
   - Nudge the replicator with the idempotent `startProducer()` call after the 
quota is relaxed, then wait until the replication backlog is cleared before 
consuming the final message.
   - Keep the existing OpenTelemetry backlog and delay metric assertions around 
the stopped and recovered states.
   
   ### Verifying this change
   
   - `./gradlew :pulsar-broker:test --tests 
org.apache.pulsar.broker.service.ReplicatorTest.testResumptionAfterBacklogRelaxed`
   - `./gradlew :pulsar-broker:test --tests 
org.apache.pulsar.broker.service.ReplicatorTest.testResumptionAfterBacklogRelaxed
 --rerun-tasks`
   


-- 
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]

Reply via email to