This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new cf24b571a30 [Pick 2.1](inverted index) fix writer searcher cache fd leak(#32564) #32812 cf24b571a30 is described below commit cf24b571a3055e63f8184c184bca87a50aff757a Author: airborne12 <airborn...@gmail.com> AuthorDate: Tue Mar 26 13:58:36 2024 +0800 [Pick 2.1](inverted index) fix writer searcher cache fd leak(#32564) #32812 --- .../segment_v2/inverted_index_file_writer.cpp | 2 + .../rowset/segment_v2/inverted_index_writer.cpp | 23 ------- .../index_change/test_index_change_1.groovy | 2 +- .../index_change/test_index_change_2.groovy | 3 +- .../index_change/test_index_change_3.groovy | 7 +- .../index_change/test_index_change_4.groovy | 3 +- .../test_index_change_with_compaction.groovy | 5 +- .../index_change/test_pk_uk_index_change.groovy | 2 +- .../inverted_index_p0/test_add_drop_index.groovy | 2 +- .../inverted_index_p0/test_array_index.groovy | 16 +++++ .../inverted_index_p0/test_build_index.groovy | 78 +++++++++++++--------- .../inverted_index_p0/test_create_index_1.groovy | 3 +- .../inverted_index_p0/test_create_index_2.groovy | 4 +- .../inverted_index_p0/test_create_index_3.groovy | 20 +++++- .../suites/inverted_index_p0/test_show_data.groovy | 11 ++- 15 files changed, 110 insertions(+), 71 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/inverted_index_file_writer.cpp b/be/src/olap/rowset/segment_v2/inverted_index_file_writer.cpp index 0ae8a1d7af5..9714480318e 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_file_writer.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_file_writer.cpp @@ -20,8 +20,10 @@ #include "common/status.h" #include "io/fs/file_writer.h" #include "io/fs/local_file_system.h" +#include "olap/rowset/segment_v2/inverted_index_cache.h" #include "olap/rowset/segment_v2/inverted_index_desc.h" #include "olap/rowset/segment_v2/inverted_index_fs_directory.h" +#include "olap/rowset/segment_v2/inverted_index_reader.h" #include "olap/tablet_schema.h" #include "runtime/exec_env.h" diff --git a/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp b/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp index 0c628f06513..54f3feb3c5d 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp @@ -47,11 +47,9 @@ #include "olap/olap_common.h" #include "olap/rowset/segment_v2/common.h" #include "olap/rowset/segment_v2/inverted_index/char_filter/char_filter_factory.h" -#include "olap/rowset/segment_v2/inverted_index_cache.h" #include "olap/rowset/segment_v2/inverted_index_desc.h" #include "olap/rowset/segment_v2/inverted_index_file_writer.h" #include "olap/rowset/segment_v2/inverted_index_fs_directory.h" -#include "olap/rowset/segment_v2/inverted_index_reader.h" #include "olap/tablet_schema.h" #include "olap/types.h" #include "runtime/collection_value.h" @@ -109,27 +107,6 @@ public: void close() { if (_index_writer) { _index_writer->close(); - if (config::enable_write_index_searcher_cache) { - // open index searcher into cache - auto mem_tracker = - std::make_unique<MemTracker>("InvertedIndexSearcherCacheWithRead"); - auto index_file_path = _index_file_writer->get_index_file_path(_index_meta); - auto index_tmp_dir = _dir->getDirName(); - InvertedIndexSearcherCache::CacheKey searcher_cache_key(index_file_path); - - auto* dir = DorisFSDirectoryFactory::getDirectory(_index_file_writer->get_fs(), - index_tmp_dir.c_str()); - IndexSearcherPtr searcher; - auto st = InvertedIndexReader::create_index_searcher( - dir, &searcher, mem_tracker.get(), InvertedIndexReaderType::FULLTEXT); - if (UNLIKELY(!st.ok())) { - LOG(ERROR) << "insert inverted index searcher cache error:" << st; - return; - } - auto* cache_value = new InvertedIndexSearcherCache::CacheValue( - std::move(searcher), mem_tracker->consumption(), UnixMillis()); - InvertedIndexSearcherCache::instance()->insert(searcher_cache_key, cache_value); - } } } diff --git a/regression-test/suites/inverted_index_p0/index_change/test_index_change_1.groovy b/regression-test/suites/inverted_index_p0/index_change/test_index_change_1.groovy index b9713f016e4..decd075b8fb 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_index_change_1.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_index_change_1.groovy @@ -27,7 +27,7 @@ suite("test_index_change_1") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } diff --git a/regression-test/suites/inverted_index_p0/index_change/test_index_change_2.groovy b/regression-test/suites/inverted_index_p0/index_change/test_index_change_2.groovy index 5c43bda26be..2c3cc561979 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_index_change_2.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_index_change_2.groovy @@ -28,7 +28,7 @@ suite("test_index_change_2") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -50,6 +50,7 @@ suite("test_index_change_2") { } } if (finished_num == expected_finished_num) { + sleep(10000) logger.info(table_name + " all build index jobs finished, detail: " + alter_res) break } diff --git a/regression-test/suites/inverted_index_p0/index_change/test_index_change_3.groovy b/regression-test/suites/inverted_index_p0/index_change/test_index_change_3.groovy index f4a4cd76d6b..0da4f8bee24 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_index_change_3.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_index_change_3.groovy @@ -28,7 +28,7 @@ suite("test_index_change_3") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -50,6 +50,7 @@ suite("test_index_change_3") { } } if (finished_num == expected_finished_num) { + sleep(10000) logger.info(table_name + " all build index jobs finished, detail: " + alter_res) break } @@ -119,7 +120,7 @@ suite("test_index_change_3") { sql """ DROP INDEX idx_city ON ${tableName} """ wait_for_latest_op_on_table_finish(tableName, timeout) sql """ DROP INDEX idx_note ON ${tableName} """ - wait_for_build_index_on_partition_finish(tableName, timeout) + wait_for_latest_op_on_table_finish(tableName, timeout) def show_result = sql "show index from ${tableName}" logger.info("show index from " + tableName + " result: " + show_result) @@ -192,7 +193,7 @@ suite("test_index_change_3") { sql """ DROP INDEX idx_city ON ${tableName} """ wait_for_latest_op_on_table_finish(tableName, timeout) sql """ DROP INDEX idx_note ON ${tableName} """ - wait_for_build_index_on_partition_finish(tableName, timeout) + wait_for_latest_op_on_table_finish(tableName, timeout) show_result = sql "show index from ${tableName}" logger.info("show index from " + tableName + " result: " + show_result) diff --git a/regression-test/suites/inverted_index_p0/index_change/test_index_change_4.groovy b/regression-test/suites/inverted_index_p0/index_change/test_index_change_4.groovy index 626f4c7f70e..46d09c7db6f 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_index_change_4.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_index_change_4.groovy @@ -28,7 +28,7 @@ suite("test_index_change_4") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -50,6 +50,7 @@ suite("test_index_change_4") { } } if (finished_num == expected_finished_num) { + sleep(10000) logger.info(table_name + " all build index jobs finished, detail: " + alter_res) break } diff --git a/regression-test/suites/inverted_index_p0/index_change/test_index_change_with_compaction.groovy b/regression-test/suites/inverted_index_p0/index_change/test_index_change_with_compaction.groovy index b32ae0df925..7dbd714294e 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_index_change_with_compaction.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_index_change_with_compaction.groovy @@ -30,7 +30,7 @@ suite("test_index_change_with_compaction") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -136,9 +136,10 @@ suite("test_index_change_with_compaction") { // create inverted index sql """ CREATE INDEX idx_user_id ON ${tableName}(`user_id`) USING INVERTED """ + wait_for_latest_op_on_table_finish(tableName, timeout) sql """ CREATE INDEX idx_date ON ${tableName}(`date`) USING INVERTED """ + wait_for_latest_op_on_table_finish(tableName, timeout) sql """ CREATE INDEX idx_city ON ${tableName}(`city`) USING INVERTED """ - wait_for_latest_op_on_table_finish(tableName, timeout) // trigger compactions for all tablets in ${tableName} diff --git a/regression-test/suites/inverted_index_p0/index_change/test_pk_uk_index_change.groovy b/regression-test/suites/inverted_index_p0/index_change/test_pk_uk_index_change.groovy index e7b9aee13d0..32bee13dc81 100644 --- a/regression-test/suites/inverted_index_p0/index_change/test_pk_uk_index_change.groovy +++ b/regression-test/suites/inverted_index_p0/index_change/test_pk_uk_index_change.groovy @@ -37,7 +37,7 @@ suite("test_pk_uk_index_change", "inverted_index") { alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } diff --git a/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy b/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy index 540539dbf2f..cec61f4c932 100644 --- a/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy +++ b/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy @@ -27,7 +27,7 @@ suite("test_add_drop_index", "inverted_index"){ alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } diff --git a/regression-test/suites/inverted_index_p0/test_array_index.groovy b/regression-test/suites/inverted_index_p0/test_array_index.groovy index dc4c1bc663a..b2009f7b622 100644 --- a/regression-test/suites/inverted_index_p0/test_array_index.groovy +++ b/regression-test/suites/inverted_index_p0/test_array_index.groovy @@ -24,6 +24,21 @@ suite("test_array_index1"){ def alter_res = "null" def useTime = 0 + def wait_for_latest_op_on_table_finish = { table_name, OpTimeout -> + for(int t = delta_time; t <= OpTimeout; t += delta_time){ + alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" + alter_res = alter_res.toString() + if(alter_res.contains("FINISHED")) { + sleep(10000) // wait change table state to normal + logger.info(table_name + " latest alter job finished, detail: " + alter_res) + break + } + useTime = t + sleep(delta_time) + } + assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout") + } + def indexTblName = "test_array_index" sql "DROP TABLE IF EXISTS ${indexTblName}" @@ -65,6 +80,7 @@ suite("test_array_index1"){ sql """ INSERT INTO `${indexTblName}`(`apply_date`, `id`, `inventors`) VALUES ('2019-01-01', 'ee27ee1da291e46403c408e220bed6e1', '[\"y\"]'); """ sql """ ALTER TABLE ${indexTblName} ADD INDEX index_inverted_inventors(inventors) USING INVERTED COMMENT ''; """ + wait_for_latest_op_on_table_finish(indexTblName, timeout) sql """ BUILD INDEX index_inverted_inventors ON ${indexTblName}; """ } diff --git a/regression-test/suites/inverted_index_p0/test_build_index.groovy b/regression-test/suites/inverted_index_p0/test_build_index.groovy index 30d79943d62..63de0db38b4 100644 --- a/regression-test/suites/inverted_index_p0/test_build_index.groovy +++ b/regression-test/suites/inverted_index_p0/test_build_index.groovy @@ -18,7 +18,7 @@ suite("test_build_index", "inverted_index"){ // prepare test table - def timeout = 60000 + def timeout = 300000 def delta_time = 1000 def alter_res = "null" def useTime = 0 @@ -28,7 +28,7 @@ suite("test_build_index", "inverted_index"){ alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -50,6 +50,7 @@ suite("test_build_index", "inverted_index"){ } } if (finished_num == expected_finished_num) { + sleep(10000) // wait change table state to normal logger.info(table_name + " all build index jobs finished, detail: " + alter_res) break } @@ -63,9 +64,14 @@ suite("test_build_index", "inverted_index"){ for(int t = delta_time; t <= OpTimeout; t += delta_time){ alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}" ORDER BY JobId """ + if (alter_res.size() == 0) { + logger.info(table_name + " last index job finished") + return "SKIPPED" + } if (alter_res.size() > 0) { def last_job_state = alter_res[alter_res.size()-1][7]; if (last_job_state == "FINISHED" || last_job_state == "CANCELLED") { + sleep(10000) // wait change table state to normal logger.info(table_name + " last index job finished, state: " + last_job_state + ", detail: " + alter_res) return last_job_state; } @@ -82,6 +88,10 @@ suite("test_build_index", "inverted_index"){ for(int t = delta_time; t <= OpTimeout; t += delta_time){ alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}" ORDER BY JobId """ + if (alter_res.size() == 0) { + logger.info(table_name + " last index job finished") + return "SKIPPED" + } if (alter_res.size() > 0) { def last_job_state = alter_res[alter_res.size()-1][7]; if (last_job_state == "RUNNING") { @@ -168,36 +178,38 @@ suite("test_build_index", "inverted_index"){ // BUILD INDEX and expect state is RUNNING sql """ BUILD INDEX idx_comment ON ${tableName} """ def state = wait_for_last_build_index_on_table_running(tableName, timeout) - def result = sql """ SHOW BUILD INDEX WHERE TableName = "${tableName}" ORDER BY JobId """ - assertEquals(result[result.size()-1][1], tableName) - assertTrue(result[result.size()-1][3].contains("ADD INDEX")) - assertEquals(result[result.size()-1][7], "RUNNING") - - // CANCEL BUILD INDEX and expect state is CANCELED - sql """ CANCEL BUILD INDEX ON ${tableName} (${result[result.size()-1][0]}) """ - result = sql """ SHOW BUILD INDEX WHERE TableName = "${tableName}" ORDER BY JobId """ - assertEquals(result[result.size()-1][1], tableName) - assertTrue(result[result.size()-1][3].contains("ADD INDEX")) - assertEquals(result[result.size()-1][7], "CANCELLED") - assertEquals(result[result.size()-1][8], "user cancelled") - - // BUILD INDEX and expect state is FINISHED - sql """ BUILD INDEX idx_comment ON ${tableName}; """ - state = wait_for_last_build_index_on_table_finish(tableName, timeout) - assertEquals(state, "FINISHED") - - // CANCEL BUILD INDEX in FINISHED state and expect exception - def success = false; - try { - sql """ CANCEL BUILD INDEX ON ${tableName}; """ - success = true - } catch(Exception ex) { - logger.info(" CANCEL BUILD INDEX ON ${tableName} exception: " + ex) - } - assertFalse(success) + if (state != "SKIPPED") { + def result = sql """ SHOW BUILD INDEX WHERE TableName = "${tableName}" ORDER BY JobId """ + assertEquals(result[result.size()-1][1], tableName) + assertTrue(result[result.size()-1][3].contains("ADD INDEX")) + assertEquals(result[result.size()-1][7], "RUNNING") + + // CANCEL BUILD INDEX and expect state is CANCELED + sql """ CANCEL BUILD INDEX ON ${tableName} (${result[result.size()-1][0]}) """ + result = sql """ SHOW BUILD INDEX WHERE TableName = "${tableName}" ORDER BY JobId """ + assertEquals(result[result.size()-1][1], tableName) + assertTrue(result[result.size()-1][3].contains("ADD INDEX")) + assertEquals(result[result.size()-1][7], "CANCELLED") + assertEquals(result[result.size()-1][8], "user cancelled") + + // BUILD INDEX and expect state is FINISHED + sql """ BUILD INDEX idx_comment ON ${tableName}; """ + state = wait_for_last_build_index_on_table_finish(tableName, timeout) + assertEquals(state, "FINISHED") + + // CANCEL BUILD INDEX in FINISHED state and expect exception + def success = false; + try { + sql """ CANCEL BUILD INDEX ON ${tableName}; """ + success = true + } catch(Exception ex) { + logger.info(" CANCEL BUILD INDEX ON ${tableName} exception: " + ex) + } + assertFalse(success) - // BUILD INDEX again and expect state is FINISHED - sql """ BUILD INDEX idx_comment ON ${tableName}; """ - state = wait_for_last_build_index_on_table_finish(tableName, timeout) - assertEquals(state, "FINISHED") + // BUILD INDEX again and expect state is FINISHED + sql """ BUILD INDEX idx_comment ON ${tableName}; """ + state = wait_for_last_build_index_on_table_finish(tableName, timeout) + assertEquals(state, "FINISHED") + } } diff --git a/regression-test/suites/inverted_index_p0/test_create_index_1.groovy b/regression-test/suites/inverted_index_p0/test_create_index_1.groovy index e2ba1609dbc..65f9b57aed2 100644 --- a/regression-test/suites/inverted_index_p0/test_create_index_1.groovy +++ b/regression-test/suites/inverted_index_p0/test_create_index_1.groovy @@ -27,7 +27,7 @@ suite("test_create_index_1", "inverted_index"){ alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -140,6 +140,7 @@ suite("test_create_index_1", "inverted_index"){ // case 2: alter add index sql "create index studentInfo_idx on ${indexTbName1}(studentInfo) using inverted" + wait_for_latest_op_on_table_finish(indexTbName1, timeout) show_result = sql "show index from ${indexTbName1}" logger.info("show index from " + indexTbName1 + " result: " + show_result) assertEquals(show_result[0][2], "studentInfo_idx") diff --git a/regression-test/suites/inverted_index_p0/test_create_index_2.groovy b/regression-test/suites/inverted_index_p0/test_create_index_2.groovy index a9aa6169713..b7db6e843fc 100644 --- a/regression-test/suites/inverted_index_p0/test_create_index_2.groovy +++ b/regression-test/suites/inverted_index_p0/test_create_index_2.groovy @@ -27,7 +27,7 @@ suite("test_create_index_2", "inverted_index"){ alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" alter_res = alter_res.toString() if(alter_res.contains("FINISHED")) { - sleep(3000) // wait change table state to normal + sleep(10000) // wait change table state to normal logger.info(table_name + " latest alter job finished, detail: " + alter_res) break } @@ -122,6 +122,7 @@ suite("test_create_index_2", "inverted_index"){ sql "drop index name_idx_1 on ${indexTbName1}" wait_for_latest_op_on_table_finish(indexTbName1, timeout) sql "drop index name_idx_2 on ${indexTbName1}" + wait_for_latest_op_on_table_finish(indexTbName1, timeout) show_result = sql "show index from ${indexTbName1}" assertEquals(show_result.size(), 0) @@ -129,6 +130,7 @@ suite("test_create_index_2", "inverted_index"){ sql """ create index name_idx on ${indexTbName1}(name) using inverted properties("parser" = "english") comment 'name index'; """ + wait_for_latest_op_on_table_finish(indexTbName1, timeout) show_result = sql "show index from ${indexTbName1}" logger.info("show index from " + indexTbName1 + " result: " + show_result) assertEquals(show_result[0][2], "name_idx") diff --git a/regression-test/suites/inverted_index_p0/test_create_index_3.groovy b/regression-test/suites/inverted_index_p0/test_create_index_3.groovy index 10e7a4a5a7d..720400412c9 100644 --- a/regression-test/suites/inverted_index_p0/test_create_index_3.groovy +++ b/regression-test/suites/inverted_index_p0/test_create_index_3.groovy @@ -18,8 +18,25 @@ suite("test_create_index_3", "inverted_index"){ // prepare test table + def timeout = 60000 + def delta_time = 1000 + def alter_res = "null" + def useTime = 0 def indexTbName1 = "test_create_index_3" - + def wait_for_latest_op_on_table_finish = { table_name, OpTimeout -> + for(int t = delta_time; t <= OpTimeout; t += delta_time){ + alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" + alter_res = alter_res.toString() + if(alter_res.contains("FINISHED")) { + sleep(10000) // wait change table state to normal + logger.info(table_name + " latest alter job finished, detail: " + alter_res) + break + } + useTime = t + sleep(delta_time) + } + assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout") + } sql "DROP TABLE IF EXISTS ${indexTbName1}" // case 1: create table with index def create_index_result = "fail" @@ -65,6 +82,7 @@ suite("test_create_index_3", "inverted_index"){ create index name_idx on ${indexTbName1}(name) using inverted properties("parser" = "english") comment 'name index'; """ + wait_for_latest_op_on_table_finish(indexTbName1, timeout) def show_result = sql "show index from ${indexTbName1}" logger.info("show index from " + indexTbName1 + " result: " + show_result) assertEquals(show_result.size(), 1) diff --git a/regression-test/suites/inverted_index_p0/test_show_data.groovy b/regression-test/suites/inverted_index_p0/test_show_data.groovy index b2f29f0dd36..838d0ec4cd0 100644 --- a/regression-test/suites/inverted_index_p0/test_show_data.groovy +++ b/regression-test/suites/inverted_index_p0/test_show_data.groovy @@ -137,6 +137,9 @@ suite("test_show_data", "p0") { for(int t = delta_time; t <= OpTimeout; t += delta_time){ def alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}" ORDER BY JobId """ + if (alter_res.size() == 0) { + return "FINISHED" + } if (alter_res.size() > 0) { def last_job_state = alter_res[alter_res.size()-1][7]; if (last_job_state == "FINISHED" || last_job_state == "CANCELLED") { @@ -165,7 +168,6 @@ suite("test_show_data", "p0") { sql """ ALTER TABLE ${testTableWithoutIndex} ADD INDEX idx_request (`request`) USING INVERTED PROPERTIES("parser" = "english") """ wait_for_latest_op_on_table_finish(testTableWithoutIndex, timeout) - // BUILD INDEX and expect state is RUNNING sql """ BUILD INDEX idx_request ON ${testTableWithoutIndex} """ def state = wait_for_last_build_index_on_table_finish(testTableWithoutIndex, timeout) assertEquals(state, "FINISHED") @@ -309,6 +311,9 @@ suite("test_show_data_for_bkd", "p0") { for(int t = delta_time; t <= OpTimeout; t += delta_time){ def alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}" ORDER BY JobId """ + if (alter_res.size() == 0) { + return "FINISHED" + } if (alter_res.size() > 0) { def last_job_state = alter_res[alter_res.size()-1][7]; if (last_job_state == "FINISHED" || last_job_state == "CANCELLED") { @@ -319,7 +324,6 @@ suite("test_show_data_for_bkd", "p0") { useTime = t Thread.sleep(delta_time) } - logger.info("wait_for_last_build_index_on_table_finish debug: " + alter_res) assertTrue(useTime <= OpTimeout, "wait_for_last_build_index_on_table_finish timeout, useTime=${useTime}") return "wait_timeout" } @@ -482,6 +486,9 @@ suite("test_show_data_multi_add", "p0") { for(int t = delta_time; t <= OpTimeout; t += delta_time){ def alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}" ORDER BY JobId """ + if (alter_res.size() == 0) { + return "FINISHED" + } if (alter_res.size() > 0) { def last_job_state = alter_res[alter_res.size()-1][7]; if (last_job_state == "FINISHED" || last_job_state == "CANCELLED") { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org