diff --git a/be/src/vec/sink/writer/vtablet_writer.cpp b/be/src/vec/sink/writer/vtablet_writer.cpp index 67f4ed378decc5..7f22a9a6481888 100644 --- a/be/src/vec/sink/writer/vtablet_writer.cpp +++ b/be/src/vec/sink/writer/vtablet_writer.cpp @@ -1139,7 +1139,7 @@ Status VTabletWriter::_init(RuntimeState* state, RuntimeProfile* profile) { _num_senders = state->num_per_fragment_instances(); _is_high_priority = (state->execution_timeout() <= config::load_task_high_priority_threshold_second); - + DBUG_EXECUTE_IF("VTabletWriter._init.is_high_priority", { _is_high_priority = true; }); // profile must add to state's object pool _mem_tracker = std::make_shared("OlapTableSink:" + std::to_string(state->load_job_id())); diff --git a/regression-test/data/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.out b/regression-test/data/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.out new file mode 100644 index 00000000000000..936545907d288c --- /dev/null +++ b/regression-test/data/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.out @@ -0,0 +1,9 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !sql -- +10000 2017-10-01 北京 20 0 2017-10-01T07:00 35 10 2 +10001 2017-10-01 北京 30 1 2017-10-01T17:05:45 2 22 22 +10002 2017-10-02 上海 20 1 2017-10-02T12:59:12 200 5 5 +10003 2017-10-02 广州 32 0 2017-10-02T11:20 30 11 11 +10004 2017-10-01 深圳 35 0 2017-10-01T10:00:15 100 3 3 +10004 2017-10-03 深圳 35 0 2017-10-03T10:20:22 11 6 6 + diff --git a/regression-test/suites/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.groovy b/regression-test/suites/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.groovy new file mode 100644 index 00000000000000..b9fd8ecf551700 --- /dev/null +++ b/regression-test/suites/fault_injection_p0/test_memtable_flush_is_high_priority_for_vtablet_writerv1_fault_injection.groovy @@ -0,0 +1,65 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_memtable_flush_is_high_priority_for_vtablet_writerV1", "nonConcurrent") { + def testTable = "test_memtable_flush_is_high_priority_for_vtablet_writerV1" + def testTableDDL = """ + create table ${testTable} + ( + `id` LARGEINT NOT NULL, + `k1` DATE NOT NULL, + `k2` VARCHAR(20), + `k3` SMALLINT, + `k4` TINYINT, + `k5` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00", + `k6` BIGINT SUM DEFAULT "0", + `k7` INT MAX DEFAULT "0", + `k8` INT MIN DEFAULT "99999" + ) + AGGREGATE KEY(`id`, `k1`, `k2`, `k3`, `k4`) + DISTRIBUTED BY HASH(`id`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + def insert_sql = """ + insert into ${testTable} values + (10000,"2017-10-01","北京",20,0,"2017-10-01 06:00:00",20,10,10), + (10000,"2017-10-01","北京",20,0,"2017-10-01 07:00:00",15,2,2), + (10001,"2017-10-01","北京",30,1,"2017-10-01 17:05:45",2,22,22), + (10002,"2017-10-02","上海",20,1,"2017-10-02 12:59:12",200,5,5), + (10003,"2017-10-02","广州",32,0,"2017-10-02 11:20:00",30,11,11), + (10004,"2017-10-01","深圳",35,0,"2017-10-01 10:00:15",100,3,3), + (10004,"2017-10-03","深圳",35,0,"2017-10-03 10:20:22",11,6,6); + """ + try { + GetDebugPoint().enableDebugPointForAllBEs("VTabletWriter._init.is_high_priority") + result = sql "show VARIABLES like \'enable_memtable_on_sink_node\'" + log.info(result.toString()) + original_status = result[0][1] + sql """set enable_memtable_on_sink_node = false""" + sql """drop table if exists ${testTable}""" + sql testTableDDL + sql insert_sql + qt_sql """select * from ${testTable} order by id""" + sql """set enable_memtable_on_sink_node = ${original_status}""" + } catch(Exception e) { + log.error(e.message()) + } finally { + GetDebugPoint().disableDebugPointForAllBEs("VTabletWriter._init.is_high_priority") + } +} \ No newline at end of file