You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2023/08/17 08:39:50 UTC
[doris] branch opt_memtable_speed updated: [fix](hash join) fix heap-use-after-free of HashJoinNode (#23094)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch opt_memtable_speed
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/opt_memtable_speed by this push:
new 1ddfdab494 [fix](hash join) fix heap-use-after-free of HashJoinNode (#23094)
1ddfdab494 is described below
commit 1ddfdab4943bd5dcf4ca67feb3b6473e9bc82a4e
Author: TengJianPing <18...@users.noreply.github.com>
AuthorDate: Thu Aug 17 16:29:47 2023 +0800
[fix](hash join) fix heap-use-after-free of HashJoinNode (#23094)
---
be/src/vec/exec/join/vhash_join_node.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/be/src/vec/exec/join/vhash_join_node.cpp b/be/src/vec/exec/join/vhash_join_node.cpp
index 4494ec80d2..7aaddf4b2a 100644
--- a/be/src/vec/exec/join/vhash_join_node.cpp
+++ b/be/src/vec/exec/join/vhash_join_node.cpp
@@ -777,11 +777,10 @@ bool HashJoinNode::_is_hash_join_early_start_probe_eos(RuntimeState* state) cons
}
void HashJoinNode::_probe_side_open_thread(RuntimeState* state, std::promise<Status>* promise) {
- Defer defer {[&]() { _probe_open_finish = true; }};
-
SCOPED_ATTACH_TASK(state);
auto st = child(0)->open(state);
if (!st.ok()) {
+ _probe_open_finish = true;
promise->set_value(st);
return;
}
@@ -796,17 +795,20 @@ void HashJoinNode::_probe_side_open_thread(RuntimeState* state, std::promise<Sta
_children[0], std::placeholders::_1, std::placeholders::_2,
std::placeholders::_3));
if (!st.ok()) {
+ _probe_open_finish = true;
promise->set_value(st);
return;
}
st = push(state, &_probe_block, _probe_eos);
if (!st.ok()) {
+ _probe_open_finish = true;
promise->set_value(st);
return;
}
}
}
+ _probe_open_finish = true;
promise->set_value(Status::OK());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org