diff --git a/src/common/meta/src/ddl/create_table.rs b/src/common/meta/src/ddl/create_table.rs index 1fe354d63d..ca9ac1e0b0 100644 --- a/src/common/meta/src/ddl/create_table.rs +++ b/src/common/meta/src/ddl/create_table.rs @@ -232,12 +232,14 @@ impl CreateTableProcedure { region_routes: &[RegionRoute], request_builder: CreateRequestBuilder, ) -> Result { - // Registers opening regions - let guards = self - .creator - .register_opening_regions(&self.context, region_routes)?; - if !guards.is_empty() { - self.creator.opening_regions = guards; + if self.creator.data.table_route.is_physical() { + // Registers opening regions + let guards = self + .creator + .register_opening_regions(&self.context, region_routes)?; + if !guards.is_empty() { + self.creator.opening_regions = guards; + } } let create_table_data = &self.creator.data; diff --git a/tests-integration/src/cluster.rs b/tests-integration/src/cluster.rs index ff2854a559..986bb0f666 100644 --- a/tests-integration/src/cluster.rs +++ b/tests-integration/src/cluster.rs @@ -53,6 +53,7 @@ use servers::Mode; use tempfile::TempDir; use tonic::transport::Server; use tower::service_fn; +use uuid::Uuid; use crate::test_util::{ self, create_datanode_opts, create_tmp_dir_and_datanode_opts, FileDirGuard, StorageGuard, @@ -96,7 +97,9 @@ impl GreptimeDbClusterBuilder { let backend = EtcdStore::with_endpoints(endpoints) .await .expect("malformed endpoints"); - Arc::new(ChrootKvBackend::new(cluster_name.into(), backend)) + // Each retry requires a new isolation namespace. + let chroot = format!("{}{}", cluster_name, Uuid::new_v4()); + Arc::new(ChrootKvBackend::new(chroot.into(), backend)) }; Self {