diff options
-rw-r--r-- | ydb/services/persqueue_v1/actors/schema_actors.cpp | 10 |
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); |