yew1eb opened a new pull request, #3811:
URL: https://github.com/apache/celeborn/pull/3811

   ### What changes were proposed in this pull request?
   
   Increase `celeborn.client.application.heartbeatInterval` from `30s` to `1h` 
in `RemoteShuffleMasterSuiteJ.setUp()`, which effectively pauses the 
LifecycleManager app heartbeater for the duration of this test suite. All 
version-specific subclasses (`RemoteShuffleMasterSuiteJV118` ~ `V23`) inherit 
from this base suite, so a single change covers all of them.
   
   ### Why are the changes needed?
   
   `RemoteShuffleMasterSuiteJ.testRegisterPartitionWithProducer` (and the other 
`shuffleCount` assertions in the same suite) is flaky:
   
   ```
   java.lang.AssertionError: expected:<1> but was:<0>
     at 
RemoteShuffleMasterSuiteJ.testRegisterPartitionWithProducer(RemoteShuffleMasterSuiteJ.java:124)
   ```
   
   Root cause is a race on `LifecycleManager#shuffleCount`:
   
   - `RemoteShuffleMaster.registerPartitionWithProducer` increments the counter 
(`RemoteShuffleMaster.java:161`)
   - the LifecycleManager app-heartbeat thread periodically ships the counter 
to the master via `shuffleCount.sumThenReset()` (`LifecycleManager.scala:234`)
   
   The suite configures `celeborn.client.application.heartbeatInterval=30s`. On 
slow CI runners a test can run past the 30s mark, so a heartbeat fires between 
the increment and the assertion and resets the counter to 0. 
`shuffleFallbackCounts` assertions are affected by the same race 
(`resetFallbackCounts`). No test in this suite depends on an app heartbeat 
actually being sent, so enlarging the interval has no side effects.
   
   Example failure (flink1 (11, 1.18)): 
https://github.com/apache/celeborn/actions/runs/32273603672/job/96135975529
   
   ### Does this PR resolve a correctness bug?
   
   <!-- Check if yes. The `correctness` label will be added/removed 
automatically. -->
   - [ ] Yes
   
   ### Does this PR introduce _any_ user-facing change?
   
   <!-- Check if yes. -->
   - [ ] Yes
   
   ### How was this patch tested?
   
   `./build/mvn -Pflink-1.18 -pl client-flink/flink-1.18 test 
-Dtest=RemoteShuffleMasterSuiteJV118` — all 7 tests passed (previously 
`shuffleCount` assertions could intermittently fail on slow runners).


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