gaturchenko opened a new pull request, #2587: URL: https://github.com/apache/systemds/pull/2587
With any delay on the worker's interface, currently every federated test fails before it starts, while the worker is listening the whole time. `FederatedWorkerUtils.tryConnect` allocated 25ms per connect attempt, but a TCP handshake needs two traversals of the link which are ~100ms under the delay above. Every attempt expired with a `SocketTimeoutException`, which is an `IOException` and therefore indistinguishable from a closed port, so the probe never succeeded. The following changes were implemented: - Per-attempt connect budget increased from 25ms to 2s. A closed port is refused by the kernel immediately, so it only applies once a handshake is in progress. Additionally, 2s covers one lost SYN, retransmitted after ~1s - Each attempt is capped by the time left until the overall deadline (`attemptTimeout`), so a slow connect cannot exceed it. The returned value of 0 implies the attempt was never made - The `waitForWorkers` now rechecks the deadline per port, which can now cost up to 2s each - Six new tests are added verifying the change -- 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]
