This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 64dc3b360f [Bug](function) fix dcheck fail on close vexpr ctx (#11908)
64dc3b360f is described below
commit 64dc3b360f98ec2d7d7298419819bae607c5ddae
Author: Pxl <[email protected]>
AuthorDate: Fri Aug 19 19:11:10 2022 +0800
[Bug](function) fix dcheck fail on close vexpr ctx (#11908)
---
be/src/exec/exec_node.cpp | 7 +++++--
be/src/exec/scan_node.cpp | 1 +
be/src/vec/exec/join/vhash_join_node.cpp | 5 +++--
be/src/vec/exec/ves_http_scan_node.cpp | 10 ++--------
be/src/vec/exec/ves_http_scan_node.h | 1 +
be/src/vec/exprs/vexpr_context.cpp | 1 -
6 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/be/src/exec/exec_node.cpp b/be/src/exec/exec_node.cpp
index f581a11c40..5c4981c739 100644
--- a/be/src/exec/exec_node.cpp
+++ b/be/src/exec/exec_node.cpp
@@ -272,7 +272,9 @@ Status ExecNode::close(RuntimeState* state) {
}
}
- if (_vconjunct_ctx_ptr) (*_vconjunct_ctx_ptr)->close(state);
+ if (_vconjunct_ctx_ptr) {
+ (*_vconjunct_ctx_ptr)->close(state);
+ }
if (typeid(*this) != typeid(doris::vectorized::VOlapScanNode)) {
Expr::close(_conjunct_ctxs, state);
}
@@ -428,8 +430,9 @@ Status ExecNode::create_node(RuntimeState* state,
ObjectPool* pool, const TPlanN
case TPlanNodeType::ODBC_SCAN_NODE:
if (state->enable_vectorized_exec()) {
*node = pool->add(new vectorized::VOdbcScanNode(pool, tnode,
descs));
- } else
+ } else {
*node = pool->add(new OdbcScanNode(pool, tnode, descs));
+ }
return Status::OK();
case TPlanNodeType::ES_HTTP_SCAN_NODE:
diff --git a/be/src/exec/scan_node.cpp b/be/src/exec/scan_node.cpp
index 63197327a4..2b8bb6b5cf 100644
--- a/be/src/exec/scan_node.cpp
+++ b/be/src/exec/scan_node.cpp
@@ -62,6 +62,7 @@ void ScanNode::_peel_pushed_vconjunct(RuntimeState* state,
vectorized::VExpr* new_conjunct_expr_root =
vectorized::VectorizedUtils::dfs_peel_conjunct(
state, *_vconjunct_ctx_ptr, conjunct_expr_root, leaf_index,
checker);
if (new_conjunct_expr_root == nullptr) {
+ (*_vconjunct_ctx_ptr)->close(state);
_vconjunct_ctx_ptr.reset(nullptr);
} else {
(*_vconjunct_ctx_ptr)->set_root(new_conjunct_expr_root);
diff --git a/be/src/vec/exec/join/vhash_join_node.cpp
b/be/src/vec/exec/join/vhash_join_node.cpp
index 4fc36fd5ba..d27c0aea06 100644
--- a/be/src/vec/exec/join/vhash_join_node.cpp
+++ b/be/src/vec/exec/join/vhash_join_node.cpp
@@ -22,7 +22,6 @@
#include "runtime/memory/mem_tracker.h"
#include "runtime/runtime_filter_mgr.h"
#include "util/defer_op.h"
-#include "vec/core/materialize_block.h"
#include "vec/data_types/data_type_number.h"
#include "vec/exprs/vexpr.h"
#include "vec/exprs/vexpr_context.h"
@@ -1475,7 +1474,9 @@ Status HashJoinNode::_build_output_block(Block*
origin_block, Block* output_bloc
}
}
- if (!is_mem_reuse) output_block->swap(mutable_block.to_block());
+ if (!is_mem_reuse) {
+ output_block->swap(mutable_block.to_block());
+ }
DCHECK(output_block->rows() == rows);
}
diff --git a/be/src/vec/exec/ves_http_scan_node.cpp
b/be/src/vec/exec/ves_http_scan_node.cpp
index b05ca0d8e7..94b2c548c5 100644
--- a/be/src/vec/exec/ves_http_scan_node.cpp
+++ b/be/src/vec/exec/ves_http_scan_node.cpp
@@ -24,12 +24,8 @@
#include "exprs/expr_context.h"
#include "gen_cpp/PlanNodes_types.h"
#include "runtime/runtime_state.h"
-#include "runtime/string_value.h"
-#include "runtime/tuple.h"
#include "runtime/tuple_row.h"
#include "util/runtime_profile.h"
-#include "util/types.h"
-#include "vec/exprs/vexpr_context.h"
namespace doris::vectorized {
@@ -352,16 +348,14 @@ Status VEsHttpScanNode::close(RuntimeState* state) {
_scanner_threads[i].join();
}
- _batch_queue.clear();
-
//don't need to hold lock to update_status in close function
//collect scanners status
update_status(collect_scanners_status());
- //close exec node
- update_status(ExecNode::close(state));
+ _batch_queue.clear();
_block_queue.clear();
+ RETURN_IF_ERROR(ScanNode::close(state));
return _process_status;
}
diff --git a/be/src/vec/exec/ves_http_scan_node.h
b/be/src/vec/exec/ves_http_scan_node.h
index 92294d0e17..cd42a573e4 100644
--- a/be/src/vec/exec/ves_http_scan_node.h
+++ b/be/src/vec/exec/ves_http_scan_node.h
@@ -23,6 +23,7 @@
#include "exec/scan_node.h"
#include "runtime/descriptors.h"
#include "vec/exec/ves_http_scanner.h"
+
namespace doris {
class RuntimeState;
diff --git a/be/src/vec/exprs/vexpr_context.cpp
b/be/src/vec/exprs/vexpr_context.cpp
index da4a3a96eb..d6a64c9d9b 100644
--- a/be/src/vec/exprs/vexpr_context.cpp
+++ b/be/src/vec/exprs/vexpr_context.cpp
@@ -17,7 +17,6 @@
#include "vec/exprs/vexpr_context.h"
-#include "runtime/thread_context.h"
#include "udf/udf_internal.h"
#include "vec/exprs/vexpr.h"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]