samuel7james opened a new pull request, #2715: URL: https://github.com/apache/datafusion-ballista/pull/2715
Follow-up to #2607, as discussed there. It builds on that PR, so only the last commit (`fix(executor): bound each scheduler connect attempt by the deadline`) is new; I'll rebase onto `main` once #2607 is merged. # Rationale for this change The connect retry loop only checks `scheduler_connect_timeout_seconds` between attempts. A single `endpoint.connect()` to a scheduler host that drops packets can still run for the full gRPC `connect_timeout_seconds` (20s by default) past the deadline. # What changes are included in this PR? - Wrap each `endpoint.connect()` in `tokio::time::timeout_at` with the same deadline as the retry loop. - Add `scheduler_connect_timeout_bounds_a_hanging_connect`: it points the executor at a listener whose accept queue is full, so the kernel drops further SYNs and the connect hangs. With a 1s timeout it fails without this change (still connecting after 5s) and passes with it. `cargo fmt` and `cargo clippy -p ballista-executor --all-targets -- -D warnings` are clean. # Are there any user-facing changes? An executor with `--scheduler-connect-timeout-seconds` set now gives up at that deadline even when a connection attempt hangs. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
