RongtongJin opened a new pull request, #10495:
URL: https://github.com/apache/rocketmq/pull/10495

   ## Summary
   - Wait for the master-side HA connection to observe the slave's initial ack 
offset before running `HATest` semi-sync message writes.
   - Add a condition-based readiness helper that checks the slave client is in 
`TRANSFER` and the master connection ack offset covers the slave max physical 
offset.
   
   ## Root Cause
   `HATest` previously waited only for the slave-side HA client to enter 
`TRANSFER`. That state can be reached before the master-side `HAConnection` 
receives the slave's initial offset report, leaving `slaveAckOffset` at `-1`. 
The first semi-sync write can race that initial report and return 
`FLUSH_SLAVE_TIMEOUT` instead of `PUT_OK` on slower CI machines.
   
   ## Impact
   This stabilizes `HATest.testSemiSyncReplica` without changing production HA 
behavior.
   
   Fixes #10494
   
   ## Validation
   ```bash
   /tmp/codex-maven/apache-maven-3.9.9/bin/mvn -pl store -am 
-Dtest=HATest#testSemiSyncReplica -DskipITs -DfailIfNoTests=false test
   /tmp/codex-maven/apache-maven-3.9.9/bin/mvn -pl store -am -Dtest=HATest 
-DskipITs -DfailIfNoTests=false test
   ```
   
   Full `HATest` result: `Tests run: 4, Failures: 0, Errors: 0, Skipped: 1`.
   


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