Skip to content

PR #3073 (0.9.9 patch) never forward-ported the 159 retryable again and setQueryTimeout does not set max_execution_time on main/0.10.0 #3136

Description

@nicolasblaye

Description

PR #3073 ("Makes 159 Execution Timeout not retriable & make setQueryTimeout set proper setting"),
which closed #3074 the 0.9.9 patch tracking issue for #2637, was merged with base v0.9.9,
not main. It was never forward-ported, so both of its fixes are absent from v0.10.0 and from
main today (@ a7fd189c):

1. 159 TIMEOUT_EXCEEDED is retryable again. ServerException.discoverIsRetryable():

ref case 159: present
v0.9.8 yes
v0.9.9 no (fixed by 9378ba0)
v0.10.0 yes
main @ a7fd189c yes (line 62)

2. Statement.setQueryTimeout() still does not set max_execution_time. On main,
queryTimeout is used only as a client-side future.get(timeout, SECONDS) — the client stops
waiting but the server keeps executing the query. v0.9.9 additionally sets the server setting.
This is the original symptom reported in #2637, which is still open.

Steps to reproduce

  1. Set max_execution_time low on the user's settings profile (e.g. 30s), or call
    setQueryTimeout() on 0.9.9 where it maps to that setting.
  2. Execute a query that reliably exceeds it.
  3. Observe the client re-executing the identical query up to retry times — one
    WARN ... Retrying. per attempt. In system.query_log the same query text appears N+1 times,
    each ending in ExceptionWhileProcessing with exception_code = 159.

Environment

  • Cloud
  • Client version: 0.9.8 (also reproduces on v0.10.0 and main @ a7fd189c; fixed only on v0.9.9)
  • Language version: Java 21 (Temurin 21.0.6)
  • OS: Linux (container)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions