diff options
author | Alexey Efimov <xeno@ydb.tech> | 2024-09-22 07:21:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-22 07:21:53 +0200 |
commit | 561ee3470320b2fd6e920664fe8196fb23ed5fce (patch) | |
tree | a8e245691b06266bdf77160079972e0931271c16 | |
parent | eec992f3c98e5c2a213a3f0ee09f47db6027df14 (diff) | |
download | ydb-561ee3470320b2fd6e920664fe8196fb23ed5fce.tar.gz |
fix maximum pdisks per node calculation (#9563)
-rw-r--r-- | ydb/core/viewer/json_handlers_viewer.cpp | 2 | ||||
-rw-r--r-- | ydb/core/viewer/json_pipe_req.h | 2 | ||||
-rw-r--r-- | ydb/core/viewer/viewer_nodes.h | 27 |
3 files changed, 26 insertions, 5 deletions
diff --git a/ydb/core/viewer/json_handlers_viewer.cpp b/ydb/core/viewer/json_handlers_viewer.cpp index 8ecd7cc923..16bbfe1a4b 100644 --- a/ydb/core/viewer/json_handlers_viewer.cpp +++ b/ydb/core/viewer/json_handlers_viewer.cpp @@ -243,7 +243,7 @@ void InitViewerHealthCheckJsonHandler(TJsonHandlers& handlers) { } void InitViewerNodesJsonHandler(TJsonHandlers& handlers) { - handlers.AddHandler("/viewer/nodes", new TJsonHandler<TJsonNodes>(TJsonNodes::GetSwagger()), 4); + handlers.AddHandler("/viewer/nodes", new TJsonHandler<TJsonNodes>(TJsonNodes::GetSwagger()), 5); } void InitViewerACLJsonHandler(TJsonHandlers &jsonHandlers) { diff --git a/ydb/core/viewer/json_pipe_req.h b/ydb/core/viewer/json_pipe_req.h index f323d371db..3871cce45d 100644 --- a/ydb/core/viewer/json_pipe_req.h +++ b/ydb/core/viewer/json_pipe_req.h @@ -85,8 +85,8 @@ protected: } if (!IsDone()) { Span.EndOk(); + Response = std::move(response); } - Response = std::move(response); } void Set(TAutoPtr<TEventHandle<T>>&& response) { diff --git a/ydb/core/viewer/viewer_nodes.h b/ydb/core/viewer/viewer_nodes.h index d0cb32607e..358aa53bcc 100644 --- a/ydb/core/viewer/viewer_nodes.h +++ b/ydb/core/viewer/viewer_nodes.h @@ -769,6 +769,16 @@ public: PDisksResponse = RequestBSControllerPDisks(); } } + if (FieldsRequired.test(+ENodeFields::PDisks)) { + if (!PDisksResponse) { + PDisksResponse = RequestBSControllerPDisks(); + } + } + if (FieldsRequired.test(+ENodeFields::VDisks)) { + if (!VSlotsResponse) { + VSlotsResponse = RequestBSControllerVSlots(); + } + } if (FieldsNeeded(FieldsHiveNodeStat) && !FilterDatabase && !FilterPath) { TTabletId rootHiveId = AppData()->DomainsInfo->GetHive(); HivesToAsk.push_back(rootHiveId); @@ -2006,18 +2016,22 @@ public: bool result = false; if (StoragePoolsResponse && StoragePoolsResponse->Error(error)) { ProcessResponses(); + RequestDone(); result = true; } if (GroupsResponse && GroupsResponse->Error(error)) { ProcessResponses(); + RequestDone(); result = true; } if (VSlotsResponse && VSlotsResponse->Error(error)) { ProcessResponses(); + RequestDone(); result = true; } if (PDisksResponse && PDisksResponse->Error(error)) { ProcessResponses(); + RequestDone(); result = true; } return result; @@ -2032,6 +2046,7 @@ public: if (it->second.Error(error)) { AddProblem("hive-error"); ProcessResponses(); + RequestDone(); } } if (ev->Get()->TabletId == GetBSControllerId()) { @@ -2039,8 +2054,8 @@ public: AddProblem("bsc-error"); } } + FailPipeConnect(ev->Get()->TabletId); } - TBase::Handle(ev); // all RequestDone() are handled by base handler } void HandleTimeout(TEvents::TEvWakeup::TPtr& ev) { @@ -2049,28 +2064,34 @@ public: if (ev->Get()->Tag == TimeoutTablets) { if (NodesInfoResponse && NodesInfoResponse->Error(error)) { ProcessResponses(); + RequestDone(); } if (NodeStateResponse && NodeStateResponse->Error(error)) { ProcessResponses(); + RequestDone(); } if (DatabaseNavigateResponse && DatabaseNavigateResponse->Error(error)) { ProcessResponses(); + RequestDone(); } if (ResourceNavigateResponse && ResourceNavigateResponse->Error(error)) { ProcessResponses(); + RequestDone(); } if (PathNavigateResponse && PathNavigateResponse->Error(error)) { ProcessResponses(); + RequestDone(); } if (OnBscError(error)) { AddProblem("bsc-timeout"); + FailPipeConnect(GetBSControllerId()); } - RequestDone(FailPipeConnect(GetBSControllerId())); for (auto& [hiveId, response] : HiveNodeStats) { if (response.Error(error)) { AddProblem("hive-timeout"); ProcessResponses(); - RequestDone(FailPipeConnect(hiveId)); + RequestDone(); + FailPipeConnect(hiveId); } } } |