Skip to content

[jdbc-v2] Handle query timeout in the middle of stream #3077

Description

@chernser

Description

Query may have execution timeout limit on server. In this case exception will be just SQLException not a SQLTimeoutException.
JDBC do not make driver throw SQLTimeoutException in this case but it would be good to fix for consistency and better error handling.

Requires: #2702

Activity

  1. jjj-n commented on Sep 1, 2026

    @jjj-n
    Contributor

    Hi @chernser, I'd like to work on this issue.

    My plan is to trace how a server-side execution timeout propagates through jdbc-v2 after the response stream has already been opened, and add a regression test where ClickHouse error 159 is received while consuming the ResultSet.

    I will then update the JDBC exception mapping so this path throws SQLTimeoutException while preserving the original cause and vendor error code. I will also verify whether synchronous and asynchronous operations share this path and cover both where applicable.

    Does this scope match what you expect for #3077?

  2. chernser commented on Sep 1, 2026

    @chernser
    ContributorAuthor

    Good day, @jjj-n !

    Sure you can take it!

    • You need to resolve [client-v2] Handle new error tag from ClickHouse #2702 - Go client should have reference implementation
    • We need verification test in client-v2 to record in tests that we handle timeout while reading stream correctly (may be specific exception would be needed because we want to add timeout to fault cause)
    • JDBC the main fix - just another test and proper exception wrapping/handling

    Thanks!

  3. added this to the 0.11.0 milestone on Sep 9, 2026
  4. modified the milestones: 0.11.0, 0.12.0 on Sep 23, 2026
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

    jdbc-v2jdbc-v2 issues

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions