This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 8a3e6644d4f61604c17e7a71f2639fbb4b941c93 Author: zhangstar333 <87313068+zhangstar...@users.noreply.github.com> AuthorDate: Mon Feb 19 17:19:05 2024 +0800 [fix](udf) fix java-udf coredump as get env return nullptr (#30986) --- be/src/runtime/fold_constant_executor.cpp | 3 ++- be/src/vec/functions/function_java_udf.cpp | 2 +- be/src/vec/functions/function_java_udf.h | 18 ++++++++---------- .../rules/expression/rules/FoldConstantRuleOnBE.java | 2 ++ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/be/src/runtime/fold_constant_executor.cpp b/be/src/runtime/fold_constant_executor.cpp index de1fd046882..8a19ca1b35c 100644 --- a/be/src/runtime/fold_constant_executor.cpp +++ b/be/src/runtime/fold_constant_executor.cpp @@ -122,7 +122,8 @@ Status FoldConstantExecutor::fold_constant_vexpr(const TFoldConstantParams& para } expr_result_map->insert({m.first, pexpr_result_map}); } - + //TODO: will be delete the debug log after find problem of timeout. + LOG(INFO) << "finish fold_query_id: " << query_id_string(); return Status::OK(); } diff --git a/be/src/vec/functions/function_java_udf.cpp b/be/src/vec/functions/function_java_udf.cpp index 0ae649b768d..dc367486dfc 100644 --- a/be/src/vec/functions/function_java_udf.cpp +++ b/be/src/vec/functions/function_java_udf.cpp @@ -127,7 +127,7 @@ Status JavaFunctionCall::close(FunctionContext* context, // JNIContext own some resource and its release method depend on JavaFunctionCall // has to release the resource before JavaFunctionCall is deconstructed. if (jni_ctx) { - jni_ctx->close(); + RETURN_IF_ERROR(jni_ctx->close()); } return Status::OK(); } diff --git a/be/src/vec/functions/function_java_udf.h b/be/src/vec/functions/function_java_udf.h index f930346a72d..e507392184f 100644 --- a/be/src/vec/functions/function_java_udf.h +++ b/be/src/vec/functions/function_java_udf.h @@ -126,29 +126,27 @@ private: JniContext() = default; - void close() { + Status close() { if (!open_successes) { LOG_WARNING("maybe open failed, need check the reason"); - return; //maybe open failed, so can't call some jni + return Status::OK(); //maybe open failed, so can't call some jni } if (is_closed) { - return; + return Status::OK(); } VLOG_DEBUG << "Free resources for JniContext"; - JNIEnv* env; + JNIEnv* env = nullptr; Status status = JniUtil::GetJNIEnv(&env); - if (!status.ok()) { + if (!status.ok() || env == nullptr) { LOG(WARNING) << "errors while get jni env " << status; - return; + return status; } env->CallNonvirtualVoidMethodA(executor, executor_cl, executor_close_id, nullptr); env->DeleteGlobalRef(executor); env->DeleteGlobalRef(executor_cl); - Status s = JniUtil::GetJniExceptionMsg(env); - if (!s.ok()) { - LOG(WARNING) << s; - } + RETURN_IF_ERROR(JniUtil::GetJniExceptionMsg(env)); is_closed = true; + return Status::OK(); } }; }; diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java index 681fa4b56cd..a254f9b4d43 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java @@ -181,6 +181,8 @@ public class FoldConstantRuleOnBE extends AbstractExpressionRewriteRule { tParams.setQueryOptions(tQueryOptions); tParams.setQueryId(context.queryId()); + // TODO: will be delete the debug log after find problem of timeout. + LOG.info("fold query {} ", DebugUtil.printId(context.queryId())); Future<PConstantExprResult> future = BackendServiceProxy.getInstance().foldConstantExpr(brpcAddress, tParams); PConstantExprResult result = future.get(5, TimeUnit.SECONDS); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org