doris版本:2.1.0
使用group commit提交有时会出现can not get a block queue for table_id
jdbc配置:
spring.datasource.url = jdbc:mysql://xxxxx:9030/sc?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useServerPrepStmts=true&sessionVariables=group_commit=async_mode
spring.datasource.username =
spring.datasource.password =
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.hikari.maximum-pool-size = 50
spring.datasource.hikari.auto-commit = true
#spring.datasource.hikari.idle-timeout = 30000
spring.datasource.hikari.max-lifetime = 500000
spring.datasource.hikari.connection-timeout = 60000
异常堆栈:
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database. Cause: java.sql.SQLException: errCode = 2, detailMessage = group commit insert failed. db_id: 15057, table_id: 40174, query_id: 66ba137c7ad04aa6-8cec52b06526e0f1, backend_id: 15094, status: status_code: 6
error_msgs: "(172.21.172.192)[INTERNAL_ERROR]can not get a block queue for table_id: 40174"
### The error may exist in file [/home/jenkins/workspace/aqb_YJSP_gzs-elasticsearch-engine_NA_DownLoadCode/project/gzs-elasticsearch-persistence/target/classes/mappers/MetricsMonitorAvgHourMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: INSERT INTO metrics_monitor_avg_hour( window_start, vm_id, capture_td_avg, capture_td_count, encode_td_avg, encode_td_count, decode_td_avg, decode_td_count, av_sync_td_avg, av_sync_td_count, rtt_td_avg, rtt_td_count, network_rtt_avg, network_rtt_count, s_fps_avg, s_fps_count, a_fps_avg, a_fps_count, d_fps_avg, d_fps_count, fps_interval_diff_avg, fps_interval_diff_count )VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) , ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
### Cause: java.sql.SQLException: errCode = 2, detailMessage = group commit insert failed. db_id: 15057, table_id: 40174, query_id: 66ba137c7ad04aa6-8cec52b06526e0f1, backend_id: 15094, status: status_code: 6
error_msgs: "(172.21.172.192)[INTERNAL_ERROR]can not get a block queue for table_id: 40174"
; uncategorized SQLException; SQL state [HY000]; error code [5025]; errCode = 2, detailMessage = group commit insert failed. db_id: 15057, table_id: 40174, query_id: 66ba137c7ad04aa6-8cec52b06526e0f1, backend_id: 15094, status: status_code: 6
error_msgs: "(172.21.172.192)[INTERNAL_ERROR]can not get a block queue for table_id: 40174"
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:93)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)
at jdk.proxy2/jdk.proxy2.$Proxy113.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
at jdk.proxy2/jdk.proxy2.$Proxy166.insertList(Unknown Source)
at com.cmcc.hy.gzs.elasticsearch.persistence.repository.sc.MetricsMonitorAvgHourMapperTest.testInsert(MetricsMonitorAvgHourMapperTest.java:93)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.sql.SQLException: errCode = 2, detailMessage = group commit insert failed. db_id: 15057, table_id: 40174, query_id: 66ba137c7ad04aa6-8cec52b06526e0f1, backend_id: 15094, status: status_code: 6
error_msgs: "(172.21.172.192)[INTERNAL_ERROR]can not get a block queue for table_id: 40174"
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:555)
at com.mysql.cj.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:339)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.mysql.cj.jdbc.ha.MultiHostConnectionProxy$JdbcInterfaceProxy.invoke(MultiHostConnectionProxy.java:110)
at jdk.proxy2/jdk.proxy2.$Proxy174.execute(Unknown Source)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)
at jdk.proxy3/jdk.proxy3.$Proxy175.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at jdk.proxy2/jdk.proxy2.$Proxy171.update(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)
... 10 more
be日志:
W20240319 16:48:30.510983 80949 fragment_mgr.cpp:400] Retrying ReportExecStatus. query id: ee1a659d910747ae-ae9c3f3c559193ee, instance id: ee1a659d910747ae-ae9c3f3c559193ef to TNetworkAddress(hostname=172.21.152.92, port=9020), err: THRIFT_ETIMEDOUT
W20240319 16:48:30.514190 80949 plan_fragment_executor.cpp:407] Got error while opening fragment ee1a659d910747ae-ae9c3f3c559193ef, query id: ee1a659d910747ae-ae9c3f3c559193ee: [INTERNAL_ERROR]can not get a block queue for table_id: 40174
I20240319 16:48:30.514281 80949 plan_fragment_executor.cpp:554] PlanFragmentExecutor::cancel ee1a659d910747ae-ae9c3f3c559193ef|ee1a659d910747ae-ae9c3f3c559193ee reason 3 error msg PlanFragmentExecutor open failed, reason: [INTERNAL_ERROR]can not get a block queue for table_id: 40174
W20240319 16:48:30.514325 80949 runtime_state.h:201] Task is cancelled, instance: ee1a659d910747ae-ae9c3f3c559193ef|ee1a659d910747ae-ae9c3f3c559193ee, st = [CANCELLED]PlanFragmentExecutor open failed, reason: [INTERNAL_ERROR]can not get a block queue for table_id: 40174
W20240319 16:48:30.515373 80949 status.h:380] meet error status: [ABORTED]PlanFragmentExecutor open failed, reason: [INTERNAL_ERROR]can not get a block queue for table_id: 40174
0# doris::PlanFragmentExecutor::cancel(doris::PPlanFragmentCancelReason const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:0
1# doris::PlanFragmentExecutor::execute() at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
2# doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::PlanFragmentExecutor>, std::function<void (doris::RuntimeState*, doris::Status*)> const&) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:449
3# std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0>::_M_invoke(std::_Any_data const&) at /var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
4# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/util/threadpool.cpp:0
5# doris::Thread::supervise_thread(void*) at /var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
6# start_thread
7# __GI___clone
I20240319 16:48:30.515951 80949 exec_node.cpp:204] query= ee1a659d910747ae-ae9c3f3c559193ee, fragment_instance_id=ee1a659d910747ae-ae9c3f3c559193ef, id=0 type=FILE_SCAN_NODE closed
I20240319 16:48:30.516019 80949 fragment_mgr.cpp:458] Instance ee1a659d910747ae-ae9c3f3c559193ef finished
I20240319 16:48:30.516028 80949 fragment_mgr.cpp:462] Query ee1a659d910747ae-ae9c3f3c559193ee finished