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]

Reply via email to