Skip to content

Commit 7df9326

Browse files
committed
issue-2725: fix tests
1 parent 0ccf202 commit 7df9326

File tree

7 files changed

+41
-25
lines changed

7 files changed

+41
-25
lines changed

cloud/blockstore/libs/storage/disk_registry/disk_registry_actor.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,24 @@ void TDiskRegistryActor::BeforeDie(const NActors::TActorContext& ctx)
188188
MakeTabletIsDeadError(E_REJECTED, __LOCATION__));
189189
}
190190
PendingDiskDeallocationRequests.clear();
191+
192+
for (auto& [actorId, requestInfo]: PendingAcquireDiskRequests) {
193+
NCloud::Reply(
194+
ctx,
195+
*requestInfo,
196+
std::make_unique<TEvDiskRegistry::TEvAcquireDiskResponse>(
197+
MakeTabletIsDeadError(E_REJECTED, __LOCATION__)));
198+
}
199+
PendingAcquireDiskRequests.clear();
200+
201+
for (auto& [actorId, requestInfo]: PendingReleaseDiskRequests) {
202+
NCloud::Reply(
203+
ctx,
204+
*requestInfo,
205+
std::make_unique<TEvDiskRegistry::TEvReleaseDiskResponse>(
206+
MakeTabletIsDeadError(E_REJECTED, __LOCATION__)));
207+
}
208+
PendingReleaseDiskRequests.clear();
191209
}
192210

193211
void TDiskRegistryActor::OnDetach(const TActorContext& ctx)

cloud/blockstore/libs/storage/disk_registry/disk_registry_actor.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ class TDiskRegistryActor final
118118
// Requests in-progress
119119
THashSet<NActors::TActorId> Actors;
120120

121-
THashMap<NActors::TActorId, TRequestInfoPtr> AcquireDiskRequests;
122-
THashMap<NActors::TActorId, TRequestInfoPtr> ReleaseDiskRequests;
121+
THashMap<NActors::TActorId, TRequestInfoPtr> PendingAcquireDiskRequests;
122+
THashMap<NActors::TActorId, TRequestInfoPtr> PendingReleaseDiskRequests;
123123

124124
TLogbrokerServicePtr LogbrokerService;
125125
NNotify::IServicePtr NotifyService;

cloud/blockstore/libs/storage/disk_registry/disk_registry_actor_acquire_release.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ void TDiskRegistryActor::HandleAcquireDisk(
8585
/*muteIOErrors=*/false,
8686
TBlockStoreComponents::DISK_REGISTRY);
8787
Actors.insert(actor);
88-
AcquireDiskRequests[actor] =
88+
PendingAcquireDiskRequests[actor] =
8989
CreateRequestInfo(ev->Sender, ev->Cookie, msg->CallContext);
9090
}
9191

@@ -99,11 +99,13 @@ void TDiskRegistryActor::HandleDevicesAcquireFinished(
9999

100100
OnDiskAcquired(std::move(msg->SentRequests));
101101

102-
auto reqInfo = AcquireDiskRequests.at(ev->Sender);
102+
auto reqInfo = PendingAcquireDiskRequests.at(ev->Sender);
103103

104104
auto response = std::make_unique<TEvDiskRegistry::TEvAcquireDiskResponse>(
105105
std::move(msg->Error));
106106

107+
const auto* disk = State->GetDisk(msg->DiskId);
108+
107109
if (HasError(response->GetError())) {
108110
LOG_ERROR(
109111
ctx,
@@ -117,13 +119,16 @@ void TDiskRegistryActor::HandleDevicesAcquireFinished(
117119
response->Record.MutableDevices()->Reserve(msg->Devices.size());
118120

119121
for (auto& device: msg->Devices) {
122+
if (disk) {
123+
ToLogicalBlocks(device, disk->LogicalBlockSize);
124+
}
120125
*response->Record.AddDevices() = std::move(device);
121126
}
122127
}
123128

124129
NCloud::Reply(ctx, *reqInfo, std::move(response));
125130
Actors.erase(ev->Sender);
126-
AcquireDiskRequests.erase(ev->Sender);
131+
PendingAcquireDiskRequests.erase(ev->Sender);
127132
}
128133

129134
////////////////////////////////////////////////////////////////////////////////
@@ -214,7 +219,7 @@ void TDiskRegistryActor::HandleReleaseDisk(
214219
TBlockStoreComponents::DISK_REGISTRY);
215220

216221
Actors.insert(actor);
217-
ReleaseDiskRequests[actor] =
222+
PendingReleaseDiskRequests[actor] =
218223
CreateRequestInfo(ev->Sender, ev->Cookie, msg->CallContext);
219224
}
220225

@@ -227,14 +232,14 @@ void TDiskRegistryActor::HandleDevicesReleaseFinished(
227232
OnDiskReleased(msg->SentRequests);
228233

229234
State->FinishAcquireDisk(msg->DiskId);
230-
auto reqInfo = ReleaseDiskRequests.at(ev->Sender);
235+
auto reqInfo = PendingReleaseDiskRequests.at(ev->Sender);
231236

232237
auto response =
233238
std::make_unique<TEvDiskRegistry::TEvReleaseDiskResponse>(msg->Error);
234239
NCloud::Reply(ctx, *reqInfo, std::move(response));
235240

236241
Actors.erase(ev->Sender);
237-
ReleaseDiskRequests.erase(ev->Sender);
242+
PendingReleaseDiskRequests.erase(ev->Sender);
238243
}
239244

240245
} // namespace NCloud::NBlockStore::NStorage

cloud/blockstore/libs/storage/disk_registry/disk_registry_state.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3363,6 +3363,12 @@ NProto::EDiskState TDiskRegistryState::GetDiskState(const TDiskId& diskId) const
33633363
return disk->State;
33643364
}
33653365

3366+
const TDiskRegistryState::TDiskState* TDiskRegistryState::GetDisk(
3367+
const TDiskId& diskId) const
3368+
{
3369+
return Disks.FindPtr(diskId);
3370+
}
3371+
33663372
NProto::TError TDiskRegistryState::GetShadowDiskId(
33673373
const TDiskId& sourceDiskId,
33683374
const TCheckpointId& checkpointId,

cloud/blockstore/libs/storage/disk_registry/disk_registry_state.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ class TDiskRegistryState
447447

448448
NProto::TError GetDiskInfo(const TDiskId& diskId, TDiskInfo& diskInfo) const;
449449
NProto::EDiskState GetDiskState(const TDiskId& diskId) const;
450+
const TDiskState* GetDisk(const TDiskId& diskId) const;
450451
NProto::TError GetShadowDiskId(
451452
const TDiskId& sourceDiskId,
452453
const TCheckpointId& checkpointId,

cloud/blockstore/libs/storage/disk_registry/disk_registry_ut_session.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,8 @@ Y_UNIT_TEST_SUITE(TDiskRegistryTest)
507507

508508
runtime->SetObserverFunc( [&] (TAutoPtr<IEventHandle>& event) {
509509
switch (event->GetTypeRewrite()) {
510-
case TEvDiskRegistryPrivate::EvFinishAcquireDiskResponse: {
510+
case NAcquireReleaseDevices::TEvDevicesAcquireFinished::
511+
EventType: {
511512
finished = true;
512513
break;
513514
}
@@ -676,10 +677,7 @@ Y_UNIT_TEST_SUITE(TDiskRegistryTest)
676677
}
677678

678679
{
679-
auto response = diskRegistry.RemoveDiskSession(
680-
"disk-1",
681-
"session-1",
682-
TVector<TAgentReleaseDevicesCachedRequest>());
680+
auto response = diskRegistry.ReleaseDisk("disk-1", "session-1");
683681
UNIT_ASSERT(!HasError(response->GetError()));
684682
}
685683
}

cloud/blockstore/libs/storage/disk_registry/testlib/test_env.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -780,18 +780,6 @@ class TDiskRegistryClient
780780
std::move(devices));
781781
}
782782

783-
auto CreateRemoveDiskSessionRequest(
784-
TString diskId,
785-
TString clientId,
786-
TVector<TAgentReleaseDevicesCachedRequest> sentRequests)
787-
{
788-
return std::make_unique<
789-
TEvDiskRegistryPrivate::TEvRemoveDiskSessionRequest>(
790-
std::move(diskId),
791-
std::move(clientId),
792-
std::move(sentRequests));
793-
}
794-
795783
auto CreateUpdateAgentStatsRequest(NProto::TAgentStats stats)
796784
{
797785
auto request = std::make_unique<TEvDiskRegistry::TEvUpdateAgentStatsRequest>();

0 commit comments

Comments
 (0)