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

Open
#3,136 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
java
Domain
backend, databases

Research direction

Start by comparing ServerException.discoverIsRetryable() and Statement.setQueryTimeout() on main with their v0.9.9 behavior. Reproduce a query exceeding max_execution_time and inspect system.query_log; done means timeout code 159 is not retried and setQueryTimeout also applies the server-side limit.

Written by the indexing model from the issue text.

Description

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 9378ba09f2)
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)
Dominant language
Java
Stars
1.6k
Forks
637
Avg merge
2d 12h
Merged PRs (30d)
28

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ClickHouse/clickhouse-java

All issues in ClickHouse/clickhouse-java

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.