背景(版本2.0.13)1台fe 3台be:
构造了自定义函数进行h3code的解析,发现会出现以下报错
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = (xx.xx.xx.xx)[CANCELLED][INTERNAL_ERROR]ExceptionInInitializerError: null
CAUSED BY: RuntimeException: Failed to initialize H3Core
CAUSED BY: IOException: Stream closed
0# doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/zcp/repo_center/doris_release/doris/be/src/util/jni-util.h:117
1# doris::vectorized::JavaFunctionCall::open(doris::FunctionContext*, doris::FunctionContext::FunctionStateScope) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
2# doris::vectorized::VExpr::init_function_context(doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) const at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
3# doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
4# doris::vectorized::VExprContext::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
5# doris::vectorized::VExpr::open(std::vector<std::shared_ptr<doris::vectorized::VExprContext>, std::allocator<std::shared_ptr<doris::vectorized::VExprContext> > > const&, doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
6# doris::ExecNode::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
7# doris::vectorized::VScanNode::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
8# doris::pipeline::StreamingOperator<doris::pipeline::ScanOperatorBuilder>::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
9# doris::pipeline::PipelineTask::_open() at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
10# doris::pipeline::PipelineTask::execute(bool*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
11# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
12# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/util/threadpool.cpp:0
13# doris::Thread::supervise_thread(void*) at /var/local/ldb-toolchain/bin/../usr/include/pthread.h:562
14# start_thread
15# clone
如果数据空会偶发性出现下面的报错
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = (xx.xx.xx.xx)[CANCELLED][INTERNAL_ERROR]ExceptionInInitializerError: null
CAUSED BY: NullPointerException: Inflater has been closed
0# doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/zcp/repo_center/doris_release/doris/be/src/util/jni-util.h:117
1# doris::vectorized::JavaFunctionCall::open(doris::FunctionContext*, doris::FunctionContext::FunctionStateScope) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
2# doris::vectorized::VExpr::init_function_context(doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) const at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
3# doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
4# doris::vectorized::VExprContext::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
5# doris::vectorized::VExpr::open(std::vector<std::shared_ptr<doris::vectorized::VExprContext>, std::allocator<std::shared_ptr<doris::vectorized::VExprContext> > > const&, doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
6# doris::ExecNode::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
7# doris::vectorized::VScanNode::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
8# doris::pipeline::StreamingOperator<doris::pipeline::ScanOperatorBuilder>::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
9# doris::pipeline::PipelineTask::_open() at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
10# doris::pipeline::PipelineTask::execute(bool*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
11# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
12# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/util/threadpool.cpp:0
13# doris::Thread::supervise_thread(void*) at /var/local/ldb-toolchain/bin/../usr/include/pthread.h:562
14# start_thread
15# clone
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = (xx.xx.xx.xx)[CANCELLED][INTERNAL_ERROR]ExceptionInInitializerError: null
CAUSED BY: IllegalStateException: zip file closed
0# doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/zcp/repo_center/doris_release/doris/be/src/util/jni-util.h:117
1# doris::vectorized::JavaFunctionCall::open(doris::FunctionContext*, doris::FunctionContext::FunctionStateScope) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
2# doris::vectorized::VExpr::init_function_context(doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) const at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
3# doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
4# doris::vectorized::VExprContext::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
5# doris::vectorized::VExpr::open(std::vector<std::shared_ptr<doris::vectorized::VExprContext>, std::allocator<std::shared_ptr<doris::vectorized::VExprContext> > > const&, doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
6# doris::vectorized::VJoinNodeBase::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
7# doris::vectorized::HashJoinNode::alloc_resource(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
8# doris::pipeline::StreamingOperator<doris::pipeline::HashJoinBuildSinkBuilder>::open(doris::RuntimeState*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
9# doris::pipeline::PipelineTask::_open() at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:446
10# doris::pipeline::PipelineTask::execute(bool*) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
11# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_release/doris/be/src/common/status.h:357
12# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_release/doris/be/src/util/threadpool.cpp:0
13# doris::Thread::supervise_thread(void*) at /var/local/ldb-toolchain/bin/../usr/include/pthread.h:562
14# start_thread
15# clone
出现的问题机器ip随机,且同一个select SQL不是每次都会出现这个异常,如果不进行具体表数据转换直接 select函数 如select geotoh3(11.2,121.3,6)则不会出现这个问题
函数信息如下:
1.构建了自定义函数如下:
CREATE GLOBAL FUNCTION geoToH3(double,double,int) RETURNS bigInt PROPERTIES (
"file"="file:///app/apache-doris-2.0.13-bin-x64/ruqi_udf/doris-udf-h3code-1.1-RELEASE.jar",
"symbol"="com.xxx.bi.udf.doris.h3code.GeoToH3",
"always_nullable"="true",
"type"="JAVA_UDF"
);
2.函数代码如下:
依赖
<dependency>
<groupId>com.uber</groupId>
<artifactId>h3</artifactId>
<version>3.6.3</version>
</dependency>