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
- 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.
- Execute a query that reliably exceeds it.
- 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
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 frommaintoday (@a7fd189c):1.
159 TIMEOUT_EXCEEDEDis retryable again.ServerException.discoverIsRetryable():case 159:presenta7fd189c2.
Statement.setQueryTimeout()still does not setmax_execution_time. Onmain,queryTimeoutis used only as a client-sidefuture.get(timeout, SECONDS)— the client stopswaiting 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
max_execution_timelow on the user's settings profile (e.g. 30s), or callsetQueryTimeout()on 0.9.9 where it maps to that setting.retrytimes — oneWARN ... Retrying.per attempt. Insystem.query_logthe same query text appears N+1 times,each ending in
ExceptionWhileProcessingwithexception_code = 159.Environment
main@a7fd189c; fixed only on v0.9.9)