@@ -769,6 +769,16 @@ class TJsonNodes : public TViewerPipeClient {
769
769
PDisksResponse = RequestBSControllerPDisks ();
770
770
}
771
771
}
772
+ if (FieldsRequired.test (+ENodeFields::PDisks)) {
773
+ if (!PDisksResponse) {
774
+ PDisksResponse = RequestBSControllerPDisks ();
775
+ }
776
+ }
777
+ if (FieldsRequired.test (+ENodeFields::VDisks)) {
778
+ if (!VSlotsResponse) {
779
+ VSlotsResponse = RequestBSControllerVSlots ();
780
+ }
781
+ }
772
782
if (FieldsNeeded (FieldsHiveNodeStat) && !FilterDatabase && !FilterPath) {
773
783
TTabletId rootHiveId = AppData ()->DomainsInfo ->GetHive ();
774
784
HivesToAsk.push_back (rootHiveId);
@@ -2006,18 +2016,22 @@ class TJsonNodes : public TViewerPipeClient {
2006
2016
bool result = false ;
2007
2017
if (StoragePoolsResponse && StoragePoolsResponse->Error (error)) {
2008
2018
ProcessResponses ();
2019
+ RequestDone ();
2009
2020
result = true ;
2010
2021
}
2011
2022
if (GroupsResponse && GroupsResponse->Error (error)) {
2012
2023
ProcessResponses ();
2024
+ RequestDone ();
2013
2025
result = true ;
2014
2026
}
2015
2027
if (VSlotsResponse && VSlotsResponse->Error (error)) {
2016
2028
ProcessResponses ();
2029
+ RequestDone ();
2017
2030
result = true ;
2018
2031
}
2019
2032
if (PDisksResponse && PDisksResponse->Error (error)) {
2020
2033
ProcessResponses ();
2034
+ RequestDone ();
2021
2035
result = true ;
2022
2036
}
2023
2037
return result;
@@ -2032,15 +2046,16 @@ class TJsonNodes : public TViewerPipeClient {
2032
2046
if (it->second .Error (error)) {
2033
2047
AddProblem (" hive-error" );
2034
2048
ProcessResponses ();
2049
+ RequestDone ();
2035
2050
}
2036
2051
}
2037
2052
if (ev->Get ()->TabletId == GetBSControllerId ()) {
2038
2053
if (OnBscError (error)) {
2039
2054
AddProblem (" bsc-error" );
2040
2055
}
2041
2056
}
2057
+ FailPipeConnect (ev->Get ()->TabletId );
2042
2058
}
2043
- TBase::Handle (ev); // all RequestDone() are handled by base handler
2044
2059
}
2045
2060
2046
2061
void HandleTimeout (TEvents::TEvWakeup::TPtr& ev) {
@@ -2049,28 +2064,34 @@ class TJsonNodes : public TViewerPipeClient {
2049
2064
if (ev->Get ()->Tag == TimeoutTablets) {
2050
2065
if (NodesInfoResponse && NodesInfoResponse->Error (error)) {
2051
2066
ProcessResponses ();
2067
+ RequestDone ();
2052
2068
}
2053
2069
if (NodeStateResponse && NodeStateResponse->Error (error)) {
2054
2070
ProcessResponses ();
2071
+ RequestDone ();
2055
2072
}
2056
2073
if (DatabaseNavigateResponse && DatabaseNavigateResponse->Error (error)) {
2057
2074
ProcessResponses ();
2075
+ RequestDone ();
2058
2076
}
2059
2077
if (ResourceNavigateResponse && ResourceNavigateResponse->Error (error)) {
2060
2078
ProcessResponses ();
2079
+ RequestDone ();
2061
2080
}
2062
2081
if (PathNavigateResponse && PathNavigateResponse->Error (error)) {
2063
2082
ProcessResponses ();
2083
+ RequestDone ();
2064
2084
}
2065
2085
if (OnBscError (error)) {
2066
2086
AddProblem (" bsc-timeout" );
2087
+ FailPipeConnect (GetBSControllerId ());
2067
2088
}
2068
- RequestDone (FailPipeConnect (GetBSControllerId ()));
2069
2089
for (auto & [hiveId, response] : HiveNodeStats) {
2070
2090
if (response.Error (error)) {
2071
2091
AddProblem (" hive-timeout" );
2072
2092
ProcessResponses ();
2073
- RequestDone (FailPipeConnect (hiveId));
2093
+ RequestDone ();
2094
+ FailPipeConnect (hiveId);
2074
2095
}
2075
2096
}
2076
2097
}
0 commit comments