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