diff --git a/seaweed-volume/src/server/grpc_server.rs b/seaweed-volume/src/server/grpc_server.rs index 7d36c0443..1e98ec462 100644 --- a/seaweed-volume/src/server/grpc_server.rs +++ b/seaweed-volume/src/server/grpc_server.rs @@ -5683,7 +5683,8 @@ impl VolumeCopyJob { v.deleted_count() as u64, ) { - store.unmount_volume(vid); + // Cannot fail: mounted under this same guard, so it cannot be compacting. + let _ = store.unmount_volume(vid); return Err(Status::internal(format!( "failed to mount or validate volume {}: {}", vid, e diff --git a/seaweed-volume/src/storage/store.rs b/seaweed-volume/src/storage/store.rs index 29d254aa9..8be0fa6b8 100644 --- a/seaweed-volume/src/storage/store.rs +++ b/seaweed-volume/src/storage/store.rs @@ -1216,6 +1216,7 @@ impl Store { found_vol.map(|v| (v, dirs)) } + #[cfg(test)] pub fn delete_expired_ec_volumes( &mut self, ) -> ( @@ -1301,6 +1302,7 @@ impl Store { } /// Remove an EC volume from whichever location has it. + #[cfg(test)] pub fn remove_ec_volume(&mut self, vid: VolumeId) -> Option { for loc in &mut self.locations { if let Some(ecv) = loc.remove_ec_volume(vid) {