mirror of
https://github.com/apache/doris.git
synced 2026-11-04 07:31:17 +00:00
[fix](regression) Sync version 3 before DROP in test_clean_tablet_when_drop_force_table (#69846)
Related PR: #68449 Problem Summary: `test_clean_tablet_when_drop_force_table` fails intermittently with `File cache directories were not cleaned before timeout`. The leftover cache dirs all belong to the version 3 rowsets. #68449 set `disable_auto_compaction=true` for this case. Before that change, cloud compaction called `sync_rowsets()` and loaded version 3 into the BE tablets as a side effect. Now nothing loads version 3 between the second stream load and `DROP TABLE FORCE`, because the case only queries after the version 2 load. The cloud `drop_tablet_callback` only recycles the file cache of rowsets in `get_snapshot_rowset(true)`, so the version 3 cache stays and the cleanup assertion times out. This PR queries the table after the version 3 load, the same way the case already does after version 2. The query loads version 3 on every BE before DROP. It also asserts the row count (160000) to confirm version 3 is visible.
This commit is contained in:
1 parent
67eef18c2d
commit
8d2b6e8e20
1 file changed
+10
+10
@@ -282,6 +282,16 @@ suite('test_clean_tablet_when_drop_force_table', 'docker') {
|
||||
}
|
||||
}
|
||||
|
||||
// Auto compaction is disabled, so nothing else syncs version 3 into the BE tablets.
|
||||
// DROP only recycles the file cache of rowsets already loaded on the BE, so query
|
||||
// here to load version 3 before collecting its cache dirs.
|
||||
for (int i = 0; i < 5; i++) {
|
||||
def rows = sql """
|
||||
select count(*) from $tableName
|
||||
"""
|
||||
assertEquals(160000L, rows[0][0] as long)
|
||||
}
|
||||
|
||||
// before drop table force
|
||||
def beforeGetFromFe = getTabletAndBeHostFromFe(tableName)
|
||||
def beforeGetFromBe = getTabletAndBeHostFromBe(cluster.getAllBackends())
|
||||
|
||||
Reference in new issue
Block a user