Skip to content

REST: Apply rest.client timeouts to SigV4 requests - #4077

Open
tomron wants to merge 1 commit into
apache:mainfrom
tomron:fix-sigv4-timeout
Open

tomron wants to merge 1 commit into
apache:mainfrom
tomron:fix-sigv4-timeout

Conversation

@tomron

@tomron tomron commented Oct 5, 2026

Copy link
Copy Markdown

Closes #4076

Rationale for this change

rest.client.connection-timeout-ms and rest.client.socket-timeout-ms are ignored when rest.sigv4-enabled is set. SigV4Adapter is mounted on the catalog URI, which is a longer prefix than the http:///https:// timeout adapter, so requests always picks it, and it never sets a timeout.

SigV4Adapter now extends _RetryTimeoutHTTPAdapter and receives the same timeout, computed by a new shared helper _connection_timeout(). It keeps using rest.sigv4.max-retries for retries. The SigV4 retry behaviour (10 retries, no backoff) is unchanged and tracked in #3008.

Are these changes tested?

Yes, test_sigv4_adapter_applies_client_timeout in tests/catalog/test_rest.py.

Are there any user-facing changes?

Yes: the rest.client.* timeouts now take effect for SigV4-signed catalogs (e.g. S3 Tables, Glue REST). Documented in configuration.md.

SigV4Adapter is mounted on the catalog URI and overrides the timeout adapter,
so rest.client.*-timeout-ms was ignored when rest.sigv4-enabled is set.

This branch has not been deployed

No deployments
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.

REST: rest.client.* timeouts are ignored when rest.sigv4-enabled is set

1 participant