Skip to content

Commit f30662e

Browse files
authored
fix disconnect time calculation (#13034)
1 parent db73603 commit f30662e

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

ydb/core/viewer/viewer_nodes.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ class TJsonNodes : public TViewerPipeClient {
9797
std::unordered_map<TNodeId, TRequestResponse<TEvWhiteboard::TEvPDiskStateResponse>> PDiskStateResponse;
9898
std::unordered_map<TNodeId, TRequestResponse<TEvWhiteboard::TEvTabletStateResponse>> TabletStateResponse;
9999
std::unordered_map<TNodeId, TRequestResponse<TEvWhiteboard::TEvNodeStateResponse>> PeersStateResponse;
100+
std::unordered_map<TNodeId, std::unordered_set<TNodeId>> SystemViewerRequest;
100101
std::unordered_map<TNodeId, TRequestResponse<TEvViewer::TEvViewerResponse>> SystemViewerResponse;
101102
std::unordered_map<TNodeId, TRequestResponse<TEvViewer::TEvViewerResponse>> VDiskViewerResponse;
102103
std::unordered_map<TNodeId, TRequestResponse<TEvViewer::TEvViewerResponse>> PDiskViewerResponse;
@@ -349,6 +350,7 @@ class TJsonNodes : public TViewerPipeClient {
349350
SystemState.SetDisconnectTime(disconnectTime.MilliSeconds());
350351
}
351352
}
353+
CalcUptimeSeconds(TInstant::Now());
352354
}
353355

354356
void RemapDisks() {
@@ -2085,9 +2087,12 @@ class TJsonNodes : public TViewerPipeClient {
20852087
auto viewerRequest = std::make_unique<TEvViewer::TEvViewerRequest>();
20862088
InitWhiteboardRequest(viewerRequest->Record.MutableSystemRequest());
20872089
viewerRequest->Record.SetTimeout(Timeout / 2);
2090+
std::unordered_set<TNodeId> nodeIds;
20882091
for (const TNode* node : batch.NodesToAskAbout) {
2092+
nodeIds.insert(node->GetNodeId());
20892093
viewerRequest->Record.MutableLocation()->AddNodeId(node->GetNodeId());
20902094
}
2095+
SystemViewerRequest[nodeId] = std::move(nodeIds);
20912096
SystemViewerResponse.emplace(nodeId, MakeViewerRequest(nodeId, viewerRequest.release()));
20922097
NodeBatches.emplace(nodeId, batch);
20932098
++WhiteboardStateRequestsInFlight;
@@ -2280,10 +2285,7 @@ class TJsonNodes : public TViewerPipeClient {
22802285
for (const auto& [responseNodeId, response] : SystemViewerResponse) {
22812286
if (response.IsOk()) {
22822287
const auto& systemResponse(response.Get()->Record.GetSystemResponse());
2283-
std::unordered_set<TNodeId> nodesWithoutData;
2284-
for (auto nodeId : response.Get()->Record.GetLocationResponded().GetNodeId()) {
2285-
nodesWithoutData.insert(nodeId);
2286-
}
2288+
std::unordered_set<TNodeId> nodesWithoutData = std::move(SystemViewerRequest[responseNodeId]);
22872289
for (const auto& systemInfo : systemResponse.GetSystemStateInfo()) {
22882290
TNodeId nodeId = systemInfo.GetNodeId();
22892291
TNode* node = FindNode(nodeId);
@@ -2785,7 +2787,6 @@ class TJsonNodes : public TViewerPipeClient {
27852787
if (FieldsRequired.test(+ENodeFields::PDisks) || FieldsRequired.test(+ENodeFields::VDisks)) {
27862788
node->RemapDisks();
27872789
}
2788-
node->CalcUptimeSeconds(TInstant::Now());
27892790
}
27902791
TString error("NodeDisconnected");
27912792
{

0 commit comments

Comments
 (0)