Skip to content

Conversation

@jackyhu-db
Copy link
Contributor

PR Description

Description

This PR sets the ConnectTimeoutMilliseconds of DatabricksConnection with TemporarilyUnavailableRetryTimeout when TemporarilyUnavailableRetryTimeout is greater than ConnectTimeoutMilliseconds to make sure it can continue the retry when ConnectTimeoutMilliseconds is lower than TemporarilyUnavailableRetryTimeout.

Changes

  • Updated DatabricksConnection:ValidateOptions to set ConnectTimeoutMilliseconds with TemporarilyUnavailableRetryTimeout when TemporarilyUnavailableRetryTimeout is greater than ConnectTimeoutMilliseconds and TemporarilyUnavailableRetry is enabled

Motivation

The default value of ConnectTimeoutMilliseconds is 30 seconds (see here), which is lower than the default value (900s) of TemporarilyUnavailableRetryTimeout. If client does not set this, it will timeout after 30s, this is normally lower than the Databricks cluster startup time, so the client/user may get the timeout error when opening a connection on an idle cluster.

Testing

  • E2E test by opening a connection and run a query on a cluster that has been stopped

@github-actions github-actions bot added this to the ADBC Libraries 19 milestone Jul 1, 2025
@jackyhu-db jackyhu-db changed the title fix(csharp/src/Drivers/Databricks): Align ConnectionTimeout with TemporarilyUnavailableRetryTimeout fix(csharp/src/Drivers/Databricks): Align ConnectionTimeout with TemporarilyUnavailableRetryTimeout Jul 1, 2025
@CurtHagenlocher CurtHagenlocher merged commit 4897d2f into apache:main Jul 1, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants