aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ydb/services/persqueue_v1/actors/schema_actors.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/ydb/services/persqueue_v1/actors/schema_actors.cpp b/ydb/services/persqueue_v1/actors/schema_actors.cpp
index cc8bf691ed..3254b4566a 100644
--- a/ydb/services/persqueue_v1/actors/schema_actors.cpp
+++ b/ydb/services/persqueue_v1/actors/schema_actors.cpp
@@ -695,13 +695,19 @@ void TDescribeTopicActorImpl::Handle(NKikimr::TEvPersQueue::TEvStatusResponse::T
if (tabletInfo.ResultRecived) return;
auto& record = ev->Get()->Record;
+ bool doRestart = (record.PartResultSize() == 0);
+
for (auto& partResult : record.GetPartResult()) {
if (partResult.GetStatus() == NKikimrPQ::TStatusResponse::STATUS_INITIALIZING ||
partResult.GetStatus() == NKikimrPQ::TStatusResponse::STATUS_UNKNOWN) {
- RestartTablet(record.GetTabletId(), ctx, {}, TDuration::MilliSeconds(100));
- return;
+ doRestart = true;
+ break;
}
}
+ if (doRestart) {
+ RestartTablet(record.GetTabletId(), ctx, {}, TDuration::MilliSeconds(100));
+ return;
+ }
tabletInfo.ResultRecived = true;
Y_ABORT_UNLESS(RequestsInfly > 0);