mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-23 04:12:32 +00:00
fix(datanode): release region map guard before awaiting role changes (#9824)
Signed-off-by: WenyXu <wenymedia@gmail.com>
This commit is contained in:
@@ -486,7 +486,14 @@ impl RegionServer {
|
||||
region_id: RegionId,
|
||||
state: SettableRegionRoleState,
|
||||
) -> Result<SetRegionRoleStateResponse> {
|
||||
match self.inner.region_map.get(®ion_id) {
|
||||
// Cloning releases the DashMap guard before awaiting the engine operation.
|
||||
let engine = self
|
||||
.inner
|
||||
.region_map
|
||||
.get(®ion_id)
|
||||
.map(|entry| entry.value().clone());
|
||||
|
||||
match engine {
|
||||
Some(engine) => Ok(engine
|
||||
.set_region_role_state_gracefully(region_id, state)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user