Skip to content

Get connection sometimes failed when init timezone. #363

Description

@YangChuanMakeSense

followed is the exception stack:

java.lang.RuntimeException: ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 10.17.27.195, port: 9322;
at ru.yandex.clickhouse.ClickHouseConnectionImpl.initTimeZone(ClickHouseConnectionImpl.java:97)
at ru.yandex.clickhouse.ClickHouseConnectionImpl.(ClickHouseConnectionImpl.java:78)
at ru.yandex.clickhouse.ClickHouseDriver.connect(ClickHouseDriver.java:55)
at ru.yandex.clickhouse.ClickHouseDriver.connect(ClickHouseDriver.java:47)
at ru.yandex.clickhouse.ClickHouseDriver.connect(ClickHouseDriver.java:29)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1596)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1662)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:932)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1369)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1365)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:109)
at com.bytedance.data.dp.datahub.engine.ClickHouseEngine.getConnection(ClickHouseEngine.java:59)
at com.bytedance.data.dp.datahub.engine.ClickHouseEngine.query(ClickHouseEngine.java:257)
at com.bytedance.data.dp.datahub.controller.DatahubController.QueryExecute(DatahubController.java:234)
at com.bytedance.data.dp.datahub.api.DatahubService$Processor$QueryExecute.getResult(DatahubService.java:527)
at com.bytedance.data.dp.datahub.api.DatahubService$Processor$QueryExecute.getResult(DatahubService.java:506)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:518)
at org.apache.thrift.server.Invocation.run(Invocation.java:18)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 10.17.27.195, port: 9322;
at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.getException(ClickHouseExceptionSpecifier.java:88)
at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:55)
at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:28)
at ru.yandex.clickhouse.ClickHouseStatementImpl.checkForErrorAndThrow(ClickHouseStatementImpl.java:817)
at ru.yandex.clickhouse.ClickHouseStatementImpl.getInputStream(ClickHouseStatementImpl.java:612)
at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:114)
at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:97)
at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:92)
at ru.yandex.clickhouse.ClickHouseStatementImpl.executeQuery(ClickHouseStatementImpl.java:87)
at ru.yandex.clickhouse.ClickHouseConnectionImpl.initTimeZone(ClickHouseConnectionImpl.java:92)
... 22 more
Caused by: java.lang.Throwable:
at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:53)
... 30 more

I use connection pool to manage the connection of clickhouse, I found that sometimes it failed get connection due to init timezone error in ClickhouseConnectionImpl,

And I have test "select timezone()" sql by send http request using curl command, but I get no error. I guess the error above is not raised by clickhouse server side.

The curl command I test is below:

for i in seq 0 50; do echo "select timezone()" | time bash -c 'curl -H "cluster: aeolus_i18n" -s -w "%{http_code}" "http://aeolus_web:Xhc7xfpuQgXHabkt@10.11.49.161:9203/?query=" --data-binary @-' ;done

But the http response of ClickhouseStatementImpl HttpClient when the exception raised in clickhouse jdbc said it is a "server internal erro: 500"

I can't not figure out what is the problem, can you give any suggestionk, please~

Activity

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions