diff options
| author | ilnaz <[email protected]> | 2022-12-20 15:50:33 +0300 |
|---|---|---|
| committer | ilnaz <[email protected]> | 2022-12-20 15:50:33 +0300 |
| commit | 39a690bb36ba82cd67c87f9f72608ec845d407f1 (patch) | |
| tree | 7b76157ba3edaa3a94f6521062cb1a33b70e82b0 | |
| parent | 4e5218a3dbf16e1338da83eff587415f356c97c0 (diff) | |
Fix buggy path at startup
| -rw-r--r-- | ydb/core/tx/datashard/datashard.cpp | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/ydb/core/tx/datashard/datashard.cpp b/ydb/core/tx/datashard/datashard.cpp index 59184c1707d..863be8f7efb 100644 --- a/ydb/core/tx/datashard/datashard.cpp +++ b/ydb/core/tx/datashard/datashard.cpp @@ -3068,24 +3068,34 @@ void TDataShard::ResolveTablePath(const TActorContext &ctx) if (State != TShardState::Ready) return; - for (auto &pr : TableInfos) { - ui64 pathId = pr.first; - const TUserTable &info = *pr.second; - - if (!info.Path) { - if (!TableResolvePipe) { - NTabletPipe::TClientConfig clientConfig; - clientConfig.RetryPolicy = SchemeShardPipeRetryPolicy; - TableResolvePipe = ctx.Register(NTabletPipe::CreateClient(ctx.SelfID, CurrentSchemeShardId, clientConfig)); + for (auto& [pathId, info] : TableInfos) { + TString reason = "empty path"; + + if (info->Path) { + NKikimrSchemeOp::TTableDescription desc; + info->GetSchema(desc); + + if (desc.GetName() == ExtractBase(desc.GetPath())) { + continue; } - auto *event = new TEvSchemeShard::TEvDescribeScheme(PathOwnerId, - pathId); - event->Record.MutableOptions()->SetReturnPartitioningInfo(false); - event->Record.MutableOptions()->SetReturnPartitionConfig(false); - event->Record.MutableOptions()->SetReturnChildren(false); - NTabletPipe::SendData(ctx, TableResolvePipe, event); + reason = "buggy path"; + } + + LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "Resolve path at " << TabletID() + << ": reason# " << reason); + + if (!TableResolvePipe) { + NTabletPipe::TClientConfig clientConfig; + clientConfig.RetryPolicy = SchemeShardPipeRetryPolicy; + TableResolvePipe = ctx.Register(NTabletPipe::CreateClient(ctx.SelfID, CurrentSchemeShardId, clientConfig)); } + + auto event = MakeHolder<TEvSchemeShard::TEvDescribeScheme>(PathOwnerId, pathId); + event->Record.MutableOptions()->SetReturnPartitioningInfo(false); + event->Record.MutableOptions()->SetReturnPartitionConfig(false); + event->Record.MutableOptions()->SetReturnChildren(false); + NTabletPipe::SendData(ctx, TableResolvePipe, event.Release()); } } @@ -3129,9 +3139,7 @@ void TDataShard::SerializeKeySample(const TUserTable &tinfo, } -void TDataShard::Handle(NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult::TPtr ev, - const TActorContext &ctx) -{ +void TDataShard::Handle(TEvSchemeShard::TEvDescribeSchemeResult::TPtr ev, const TActorContext &ctx) { const auto &rec = ev->Get()->GetRecord(); LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, |
