clickhouse-java icon indicating copy to clipboard operation
clickhouse-java copied to clipboard

JDBC driver prints stack trace to stdout

Open jjtt opened this issue 1 year ago • 2 comments

Describe the bug

On some exceptions the JDBC driver prints a whole stack trace to stdout here: https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseClient.java#L963

This can mess up structured logging output for an application that uses the ClickHouse JDBC driver.

Steps to reproduce

  1. Connect to a db from an application
  2. Revoke the db credentials
  3. See stack trace in application stdout

Expected behaviour

Should use some common logging framework where the application can control logging from libraries. For example: SLF4J or logback.

Or throw an exception and let the application worry about it.

jjtt avatar Sep 19 '24 07:09 jjtt

Hello @chernser , Unless you already did something I'd be glad to solve this simple issue. My take would be to have the same behaviour as the client_v2 and simply return false.

Even though I don't see generally a good idea to silence an exception, I wonder if adding a log is useful as the fact of having the clickhouse instance, we are trying to reach, unavailable is already part of the goal of calling this method. What is your opinion on the matter?

Am-phi avatar Oct 22 '24 22:10 Am-phi

Good day, @Am-phi ! Thank you for suggesting the help - I will appreciate it!

What you are saying is true - we should always log exception or re-throw it. returning false in this case is a correct thing - because it indicates that server is not reachable. And logging the exception is important for investigation later.

chernser avatar Oct 22 '24 22:10 chernser