@@ -151,7 +151,6 @@ class TStorageGroups : public TViewerPipeClient {
151
151
std::unordered_set<TGroupId> FilterGroupIds;
152
152
std::unordered_set<TNodeId> FilterNodeIds;
153
153
std::unordered_set<ui32> FilterPDiskIds;
154
- std::vector<TNodeId> SubscriptionNodeIds;
155
154
156
155
enum class EWith {
157
156
Everything,
@@ -894,22 +893,6 @@ class TStorageGroups : public TViewerPipeClient {
894
893
Schedule (TDuration::MilliSeconds (Timeout), new TEvents::TEvWakeup (TimeoutFinal)); // timeout for the rest
895
894
}
896
895
897
- void PassAway () override {
898
- std::vector<bool > passedNodes;
899
- for (const TNodeId nodeId : SubscriptionNodeIds) {
900
- if (passedNodes.size () <= nodeId) {
901
- passedNodes.resize (nodeId + 1 );
902
- } else {
903
- if (passedNodes[nodeId]) {
904
- continue ;
905
- }
906
- }
907
- Send (TActivationContext::InterconnectProxy (nodeId), new TEvents::TEvUnsubscribe ());
908
- passedNodes[nodeId] = true ;
909
- }
910
- TBase::PassAway ();
911
- }
912
-
913
896
void ApplyFilter () {
914
897
// database pre-filter, affects TotalGroups count
915
898
if (!DatabaseStoragePools.empty ()) {
@@ -1229,6 +1212,7 @@ class TStorageGroups : public TViewerPipeClient {
1229
1212
bool CollectedHiveData = false ;
1230
1213
1231
1214
void CollectHiveData () {
1215
+ static TPathId badPathId (0 , 0 );
1232
1216
if (!CollectedHiveData) {
1233
1217
if (!GroupView.empty ()) {
1234
1218
ui64 hiveId = AppData ()->DomainsInfo ->GetHive ();
@@ -1241,6 +1225,9 @@ class TStorageGroups : public TViewerPipeClient {
1241
1225
}
1242
1226
for (const TGroup* group : GroupView) {
1243
1227
TPathId pathId (group->SchemeShardId , group->PathId );
1228
+ if (pathId == badPathId) {
1229
+ pathId = {AppData ()->DomainsInfo ->Domain ->SchemeRoot , 1 };
1230
+ }
1244
1231
if (NavigateKeySetResult.count (pathId) == 0 ) {
1245
1232
ui64 cookie = NavigateKeySetResult.size ();
1246
1233
NavigateKeySetResult.emplace (pathId, MakeRequestSchemeCacheNavigate (pathId, cookie));
@@ -1849,12 +1836,7 @@ class TStorageGroups : public TViewerPipeClient {
1849
1836
return ;
1850
1837
}
1851
1838
if (BSGroupStateResponse.count (nodeId) == 0 ) {
1852
- TActorId whiteboardServiceId = MakeNodeWhiteboardServiceId (nodeId);
1853
- BSGroupStateResponse.emplace (nodeId, MakeRequest<TEvWhiteboard::TEvBSGroupStateResponse>(whiteboardServiceId,
1854
- new TEvWhiteboard::TEvBSGroupStateRequest (),
1855
- IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession,
1856
- nodeId));
1857
- SubscriptionNodeIds.push_back (nodeId);
1839
+ BSGroupStateResponse.emplace (nodeId, MakeWhiteboardRequest (nodeId, new TEvWhiteboard::TEvBSGroupStateRequest ()));
1858
1840
++BSGroupStateRequestsInFlight;
1859
1841
}
1860
1842
}
@@ -1863,22 +1845,13 @@ class TStorageGroups : public TViewerPipeClient {
1863
1845
if (nodeId == 0 ) {
1864
1846
return ;
1865
1847
}
1866
- TActorId whiteboardServiceId = MakeNodeWhiteboardServiceId (nodeId);
1867
1848
if (VDiskStateResponse.count (nodeId) == 0 ) {
1868
- VDiskStateResponse.emplace (nodeId, MakeRequest<TEvWhiteboard::TEvVDiskStateResponse>(whiteboardServiceId,
1869
- new TEvWhiteboard::TEvVDiskStateRequest (),
1870
- IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession,
1871
- nodeId));
1849
+ VDiskStateResponse.emplace (nodeId, MakeWhiteboardRequest (nodeId, new TEvWhiteboard::TEvVDiskStateRequest ()));
1872
1850
++VDiskStateRequestsInFlight;
1873
- SubscriptionNodeIds.push_back (nodeId);
1874
1851
}
1875
1852
if (PDiskStateResponse.count (nodeId) == 0 ) {
1876
- PDiskStateResponse.emplace (nodeId, MakeRequest<TEvWhiteboard::TEvPDiskStateResponse>(whiteboardServiceId,
1877
- new TEvWhiteboard::TEvPDiskStateRequest (),
1878
- IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession,
1879
- nodeId));
1853
+ PDiskStateResponse.emplace (nodeId, MakeWhiteboardRequest (nodeId, new TEvWhiteboard::TEvPDiskStateRequest ()));
1880
1854
++PDiskStateRequestsInFlight;
1881
- SubscriptionNodeIds.push_back (nodeId);
1882
1855
}
1883
1856
}
1884
1857
0 commit comments