Uh oh!
There was an error while loading. Please reload this page.
TEZ-4725: Fix flaky tests in TestAMRecoveryAggregationBroadcast - #520
Conversation
tez-yetus
commented
Jul 14, 2026
🎊 +1 overall
This message was automatically generated. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
maheshrajus
commented
Jul 28, 2026
@abstractdog I have addressed your review comments. Could you please review and approve the PR at your convenience? Thanks ! |
tez-yetus
commented
Jul 28, 2026
🎊 +1 overall
This message was automatically generated. |
Uh oh!
There was an error while loading. Please reload this page.
abstractdog
left a comment
There was a problem hiding this comment.
thanks @maheshrajus , only a few minor comments left
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
abstractdog
left a comment
There was a problem hiding this comment.
1 more thing, otherwise it's okay
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
tez-yetus
commented
Jul 29, 2026
🎊 +1 overall
This message was automatically generated. |
Root causes and fixes:
TestAMRecoveryAggregationBroadcast.testMapJoinTemporalFailure (race condition)
Replace fixed Thread.sleep(10s) before AM kill with a deterministic
waitForVertexSucceeded() helper that polls DAGClient.getVertexStatus()
every 500ms (up to 60s) until the target vertices reach SUCCEEDED state.
Each test now waits for only the vertices it logically depends on before
killing the AM, ensuring the recovery log assertions always see the
expected counts.
Make OUT_PATH unique per test run (random suffix) to eliminate cross-test.
DAGClientRPCImpl / TezClientUtils: port out of range:-1 (YARN-808 gap)
YARN sets rpcPort=-1 when an AM container is allocated (state=RUNNING)
but the AM has not yet bound its RPC listener. The existing guard only
checked rpcPort==0 (protobuf default), so rpcPort==-1 reached
NetUtils.createSocketAddrForHost(), which threw
IllegalArgumentException: port out of range:-1.
Fix DAGClientRPCImpl.createAMProxyIfNeeded(): rpcPort == 0 → rpcPort <= 0.
Fix TezClientUtils.getAMProxy(FrameworkClient,...): add the same
rpcPort <= 0 guard