Skip to content

fix(client): allow configuring request timeouts - #27739

Open
kVinsom wants to merge 2 commits into
influxdata:mainfrom
kVinsom:fix/27591-client-timeout
Open

kVinsom wants to merge 2 commits into
influxdata:mainfrom
kVinsom:fix/27591-client-timeout

Conversation

@kVinsom

@kVinsom kVinsom commented Oct 31, 2026 •

Copy link
Copy Markdown

Closes #27591

Requests to a server that accepts a connection but stops responding currently wait indefinitely. Add Client::with_timeout(Duration) to set a total request timeout, including response body reads. Keep the existing unlimited default for compatibility with long-running queries.

Share timeout and authentication setup across ping, byte-response, creation, and JSON requests. Regression tests cover missing response headers, stalled success/error bodies, client clones, and a successful authenticated query. All four stalled-server tests fail when timeout enforcement is removed.

Dependency audit follow-up

The failed dependency audit also affected the base branch. Refresh compatible locked dependencies, including Wasmtime 48.0.8, pulldown-cmark 0.13.6, Rustls 0.23.46, rustls-webpki 0.103.16, current webpki roots and the patched Zstd 0.13 line.

Move the workspace's direct tokio-rustls dependency to 0.26.4, retaining Ring and TLS 1.2 support. This removes Rustls 0.22 and rustls-webpki 0.102 from the tree, so their four obsolete advisory exceptions are removed as well.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --locked -p influxdb3_client --all-targets --all-features -- -D warnings
  • cargo nextest run --locked -p influxdb3_client: 17 passed; 1 existing ignored test
  • cargo test --locked -p influxdb3_client --doc: 11 passed
  • cargo check --locked -p influxdb3_server
  • cargo nextest run --locked -p influxdb3 --test lib --no-default-features -E 'test(server::tls_1_3_minimum_test)': passed; verifies TLS 1.2 rejection and TLS 1.3 acceptance when the server requires TLS 1.3

The full workspace test suite was not run.

Remaining CI blockers

The full pinned cargo-deny check now reports only RUSTSEC-2026-0435: Parquet 57.3.1 still requires Thrift 0.17, while the fix is in Thrift 0.23. There is no newer compatible Parquet 57 patch available to Cargo. This advisory remains enabled; addressing the parent dependency requires an upstream/backport decision rather than suppressing the check or folding a major Arrow/DataFusion migration into this timeout change.

CircleCI's fetch-python job is rejected for fork pull requests before running its steps. It uses an organization-managed runner and requires maintainer action. This update does not change the runner security policy or claim all CI is green.

  • I've read the contributing section of the project README.
  • Signed the InfluxData CLA (previously signed for InfluxData contributions).

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.

influxdb3_client: no request timeout and no way to configure one

1 participant