Skip to content

Commit 818c2f1

Browse files
committed
improve whiteboard tracing and skip invalid path id (#10704)
1 parent ab22904 commit 818c2f1

File tree

1 file changed

+7
-34
lines changed

1 file changed

+7
-34
lines changed

ydb/core/viewer/storage_groups.h

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ class TStorageGroups : public TViewerPipeClient {
151151
std::unordered_set<TGroupId> FilterGroupIds;
152152
std::unordered_set<TNodeId> FilterNodeIds;
153153
std::unordered_set<ui32> FilterPDiskIds;
154-
std::vector<TNodeId> SubscriptionNodeIds;
155154

156155
enum class EWith {
157156
Everything,
@@ -894,22 +893,6 @@ class TStorageGroups : public TViewerPipeClient {
894893
Schedule(TDuration::MilliSeconds(Timeout), new TEvents::TEvWakeup(TimeoutFinal)); // timeout for the rest
895894
}
896895

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-
913896
void ApplyFilter() {
914897
// database pre-filter, affects TotalGroups count
915898
if (!DatabaseStoragePools.empty()) {
@@ -1229,6 +1212,7 @@ class TStorageGroups : public TViewerPipeClient {
12291212
bool CollectedHiveData = false;
12301213

12311214
void CollectHiveData() {
1215+
static TPathId badPathId(0, 0);
12321216
if (!CollectedHiveData) {
12331217
if (!GroupView.empty()) {
12341218
ui64 hiveId = AppData()->DomainsInfo->GetHive();
@@ -1241,6 +1225,9 @@ class TStorageGroups : public TViewerPipeClient {
12411225
}
12421226
for (const TGroup* group : GroupView) {
12431227
TPathId pathId(group->SchemeShardId, group->PathId);
1228+
if (pathId == badPathId) {
1229+
pathId = {AppData()->DomainsInfo->Domain->SchemeRoot, 1};
1230+
}
12441231
if (NavigateKeySetResult.count(pathId) == 0) {
12451232
ui64 cookie = NavigateKeySetResult.size();
12461233
NavigateKeySetResult.emplace(pathId, MakeRequestSchemeCacheNavigate(pathId, cookie));
@@ -1849,12 +1836,7 @@ class TStorageGroups : public TViewerPipeClient {
18491836
return;
18501837
}
18511838
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()));
18581840
++BSGroupStateRequestsInFlight;
18591841
}
18601842
}
@@ -1863,22 +1845,13 @@ class TStorageGroups : public TViewerPipeClient {
18631845
if (nodeId == 0) {
18641846
return;
18651847
}
1866-
TActorId whiteboardServiceId = MakeNodeWhiteboardServiceId(nodeId);
18671848
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()));
18721850
++VDiskStateRequestsInFlight;
1873-
SubscriptionNodeIds.push_back(nodeId);
18741851
}
18751852
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()));
18801854
++PDiskStateRequestsInFlight;
1881-
SubscriptionNodeIds.push_back(nodeId);
18821855
}
18831856
}
18841857

0 commit comments

Comments
 (0)