You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by zh...@apache.org on 2019/09/28 02:33:29 UTC
[incubator-doris] branch master updated: Fix
memory_scratch_sink_test in debug mode (#1906)
This is an automated email from the ASF dual-hosted git repository.
zhaoc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new d3a445e Fix memory_scratch_sink_test in debug mode (#1906)
d3a445e is described below
commit d3a445ee09df30f0263cf0c497e44d6ee48477fa
Author: kangkaisen <ka...@apache.org>
AuthorDate: Sat Sep 28 10:33:24 2019 +0800
Fix memory_scratch_sink_test in debug mode (#1906)
---
be/src/runtime/runtime_state.cpp | 5 +++++
be/src/runtime/runtime_state.h | 3 +++
be/test/runtime/memory_scratch_sink_test.cpp | 22 +++++++++++++---------
3 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/be/src/runtime/runtime_state.cpp b/be/src/runtime/runtime_state.cpp
index 1787920..970aec8 100644
--- a/be/src/runtime/runtime_state.cpp
+++ b/be/src/runtime/runtime_state.cpp
@@ -264,6 +264,11 @@ Status RuntimeState::init_mem_trackers(const TUniqueId& query_id) {
return Status::OK();
}
+Status RuntimeState::init_instance_mem_tracker() {
+ _instance_mem_tracker.reset(new MemTracker(-1));
+ return Status::OK();
+}
+
Status RuntimeState::init_buffer_poolstate() {
ExecEnv* exec_env = ExecEnv::GetInstance();
int64_t mem_limit = _query_mem_tracker->lowest_limit();
diff --git a/be/src/runtime/runtime_state.h b/be/src/runtime/runtime_state.h
index e771c86..41c399d 100644
--- a/be/src/runtime/runtime_state.h
+++ b/be/src/runtime/runtime_state.h
@@ -93,6 +93,9 @@ public:
// This function also initializes a user function mem tracker (in the fourth level).
Status init_mem_trackers(const TUniqueId& query_id);
+ // for ut only
+ Status init_instance_mem_tracker();
+
/// Called from Init() to set up buffer reservations and the file group.
Status init_buffer_poolstate();
diff --git a/be/test/runtime/memory_scratch_sink_test.cpp b/be/test/runtime/memory_scratch_sink_test.cpp
index 00b6bf4..f966530 100644
--- a/be/test/runtime/memory_scratch_sink_test.cpp
+++ b/be/test/runtime/memory_scratch_sink_test.cpp
@@ -37,17 +37,14 @@
#include "runtime/tuple_row.h"
#include "util/blocking_queue.hpp"
#include "util/logging.h"
+#include "testutil/desc_tbl_builder.h"
namespace doris {
class MemoryScratchSinkTest : public testing::Test {
public:
MemoryScratchSinkTest() {
- // _exec_env = doris::ExecEnv::GetInstance();
- // std::vector<doris::StorePath> paths;
- // doris::parse_conf_store_paths(doris::config::storage_root_path, &paths);
- // doris::ExecEnv::init(_exec_env, paths);
- // all below is just only for test MemoryScratchSink
+ // all below is just only for test MemoryScratchSink
ResultQueueMgr* result_queue_mgr = new ResultQueueMgr();
ThreadResourceMgr* thread_mgr = new ThreadResourceMgr();
_exec_env._result_queue_mgr = result_queue_mgr;
@@ -58,6 +55,7 @@ public:
query_id.lo = 10;
query_id.hi = 100;
_runtime_state = new RuntimeState(query_id, query_options, TQueryGlobals(), &_exec_env);
+ _runtime_state->init_instance_mem_tracker();
{
TExpr expr;
{
@@ -75,6 +73,12 @@ public:
}
_mem_tracker = new MemTracker(-1, "MemoryScratchSinkTest", _runtime_state->instance_mem_tracker());
+ // init _row_desc
+ vector<bool> nullable_tuples(1, false);
+ vector<TTupleId> tuple_ids(1, static_cast<TTupleId>(0));
+ DescriptorTblBuilder int_builder(&_pool);
+ int_builder.declare_tuple() << TYPE_INT;
+ _row_desc = _pool.add(new RowDescriptor(*int_builder.build(), tuple_ids, nullable_tuples));
}
virtual ~MemoryScratchSinkTest() {
delete _runtime_state;
@@ -86,22 +90,22 @@ protected:
}
private:
+ ObjectPool _pool;
ExecEnv _exec_env;
std::vector<TExpr> _exprs;
RuntimeState* _runtime_state;
- RowDescriptor _row_desc;
+ RowDescriptor* _row_desc;
TMemoryScratchSink _tsink;
MemTracker *_mem_tracker;
};
TEST_F(MemoryScratchSinkTest, work_flow_normal) {
- MemoryScratchSink sink(_row_desc, _exprs, _tsink);
+ MemoryScratchSink sink(*_row_desc, _exprs, _tsink);
TDataSink data_sink;
data_sink.memory_scratch_sink = _tsink;
ASSERT_TRUE(sink.init(data_sink).ok());
ASSERT_TRUE(sink.prepare(_runtime_state).ok());
- ASSERT_TRUE(sink.prepare(_runtime_state).ok());
- RowBatch row_batch(_row_desc, 1024, _mem_tracker);
+ RowBatch row_batch(*_row_desc, 1024, _mem_tracker);
row_batch.add_row();
row_batch.commit_last_row();
ASSERT_TRUE(sink.send(_runtime_state, &row_batch).ok());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org