diff --git a/cloud/blockstore/libs/storage/disk_registry/disk_registry_actor_release.cpp b/cloud/blockstore/libs/storage/disk_registry/disk_registry_actor_release.cpp index 2a790f79e0d..2ed2c92a084 100644 --- a/cloud/blockstore/libs/storage/disk_registry/disk_registry_actor_release.cpp +++ b/cloud/blockstore/libs/storage/disk_registry/disk_registry_actor_release.cpp @@ -1,5 +1,5 @@ #include "disk_registry_actor.h" -#include "cloud/blockstore/libs/storage/core/proto_helpers.h" +#include #include diff --git a/cloud/blockstore/libs/storage/testlib/disk_agent_mock.h b/cloud/blockstore/libs/storage/testlib/disk_agent_mock.h index 3885217e2d0..8b9ee4d1edd 100644 --- a/cloud/blockstore/libs/storage/testlib/disk_agent_mock.h +++ b/cloud/blockstore/libs/storage/testlib/disk_agent_mock.h @@ -92,8 +92,7 @@ class TDiskAgentMock final private: STFUNC(StateWork) { - auto typeRewrite = ev->GetTypeRewrite(); - switch (typeRewrite) { + switch (ev->GetTypeRewrite()) { HFunc(NActors::TEvents::TEvPoisonPill, HandlePoisonPill); HFunc(TEvDiskAgent::TEvReadDeviceBlocksRequest, HandleReadDeviceBlocks); diff --git a/cloud/blockstore/libs/storage/volume/volume_actor_acquire.cpp b/cloud/blockstore/libs/storage/volume/volume_actor_acquire.cpp index 3a93388da36..200ad183f5a 100644 --- a/cloud/blockstore/libs/storage/volume/volume_actor_acquire.cpp +++ b/cloud/blockstore/libs/storage/volume/volume_actor_acquire.cpp @@ -1,6 +1,6 @@ #include "volume_actor.h" -#include "cloud/blockstore/libs/storage/core/proto_helpers.h" +#include #include #include @@ -16,6 +16,8 @@ using namespace NKikimr::NTabletFlatExecutor; namespace { +//////////////////////////////////////////////////////////////////////////////// + class TAcquireDevicesActor final : public TActorBootstrapped { diff --git a/cloud/blockstore/libs/storage/volume/volume_actor_addclient.cpp b/cloud/blockstore/libs/storage/volume/volume_actor_addclient.cpp index 97d6bda1f4e..99d44e17495 100644 --- a/cloud/blockstore/libs/storage/volume/volume_actor_addclient.cpp +++ b/cloud/blockstore/libs/storage/volume/volume_actor_addclient.cpp @@ -191,8 +191,8 @@ void TVolumeActor::HandleAcquireDiskResponse( } void TVolumeActor::HandleDevicesAcquireFinishedImpl( - const NProto::TError& error, - const NActors::TActorContext& ctx) + const NProto::TError& error, + const NActors::TActorContext& ctx) { ScheduleAcquireDiskIfNeeded(ctx); diff --git a/cloud/blockstore/libs/storage/volume/volume_actor_release.cpp b/cloud/blockstore/libs/storage/volume/volume_actor_release.cpp index f84d1801342..e88594f09c0 100644 --- a/cloud/blockstore/libs/storage/volume/volume_actor_release.cpp +++ b/cloud/blockstore/libs/storage/volume/volume_actor_release.cpp @@ -1,5 +1,5 @@ #include "volume_actor.h" -#include "cloud/blockstore/libs/storage/core/proto_helpers.h" +#include #include #include diff --git a/cloud/blockstore/libs/storage/volume/volume_events_private.h b/cloud/blockstore/libs/storage/volume/volume_events_private.h index 67b28d6864d..4003d1797f3 100644 --- a/cloud/blockstore/libs/storage/volume/volume_events_private.h +++ b/cloud/blockstore/libs/storage/volume/volume_events_private.h @@ -413,16 +413,11 @@ struct TEvVolumePrivate EvExternalDrainDone >; - using TEvDevicesAcquireFinished = TRequestEvent< - TDevicesAcquireFinished, - EvDevicesAcquireFinished - >; + using TEvDevicesAcquireFinished = + TResponseEvent; using TEvDevicesReleaseFinished = - TRequestEvent< - TDevicesReleaseFinished, - EvDevicesReleaseFinished - >; + TResponseEvent; }; } // namespace NCloud::NBlockStore::NStorage diff --git a/cloud/blockstore/libs/storage/volume/volume_state.h b/cloud/blockstore/libs/storage/volume/volume_state.h index ccb9766f02b..3ec91963ae3 100644 --- a/cloud/blockstore/libs/storage/volume/volume_state.h +++ b/cloud/blockstore/libs/storage/volume/volume_state.h @@ -726,12 +726,9 @@ class TVolumeState TVector GetAllDevicesForAcquireRelease() { - - size_t allDevicesCount = Meta.GetDevices().size(); - for (const auto& replica: Meta.GetReplicas()) { - allDevicesCount += replica.GetDevices().size(); - } - allDevicesCount += GetMeta().GetMigrations().size(); + const size_t allDevicesCount = + ((Meta.ReplicasSize() + 1) * Meta.DevicesSize()) + + GetMeta().MigrationsSize(); TVector resultDevices; resultDevices.reserve(allDevicesCount); diff --git a/cloud/blockstore/libs/storage/volume/volume_state_ut.cpp b/cloud/blockstore/libs/storage/volume/volume_state_ut.cpp index 5f64fd6e713..616390d48a6 100644 --- a/cloud/blockstore/libs/storage/volume/volume_state_ut.cpp +++ b/cloud/blockstore/libs/storage/volume/volume_state_ut.cpp @@ -1956,9 +1956,9 @@ Y_UNIT_TEST_SUITE(TVolumeStateTest) r2.AddDevices()->SetDeviceUUID("d5"); r2.AddDevices()->SetDeviceUUID("d6"); - auto deviceMigration = NProto::TDeviceMigration(); + NProto::TDeviceMigration deviceMigration; deviceMigration.SetSourceDeviceId("d1"); - *deviceMigration.MutableTargetDevice()->MutableDeviceUUID() = "d7"; + deviceMigration.MutableTargetDevice()->SetDeviceUUID("d7"); meta.MutableMigrations()->Add(std::move(deviceMigration)); volumeState.ResetMeta(meta); @@ -1967,13 +1967,10 @@ Y_UNIT_TEST_SUITE(TVolumeStateTest) deviceUUIDSExpected{"d1", "d2", "d3", "d4", "d5", "d6", "d7"}; auto devices = volumeState.GetAllDevicesForAcquireRelease(); - auto devicesUUIDS = - devices | std::views::transform([](const auto& el) - { return el.GetDeviceUUID(); }); - - THashSet devicesUUIDSActual( - devicesUUIDS.begin(), - devicesUUIDS.end()); + THashSet devicesUUIDSActual; + for (const auto& d: volumeState.GetAllDevicesForAcquireRelease()) { + devicesUUIDSActual.insert(d.GetDeviceUUID()); + } UNIT_ASSERT_EQUAL(deviceUUIDSExpected, devicesUUIDSActual); } diff --git a/cloud/blockstore/libs/storage/volume/volume_ut_session.cpp b/cloud/blockstore/libs/storage/volume/volume_ut_session.cpp index a4f1369f9c2..bc0d8a571fc 100644 --- a/cloud/blockstore/libs/storage/volume/volume_ut_session.cpp +++ b/cloud/blockstore/libs/storage/volume/volume_ut_session.cpp @@ -20,6 +20,7 @@ using namespace NTestVolume; using namespace NTestVolumeHelpers; +//////////////////////////////////////////////////////////////////////////////// Y_UNIT_TEST_SUITE(TVolumeTest) {