summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorilnaz <[email protected]>2022-12-20 15:50:33 +0300
committerilnaz <[email protected]>2022-12-20 15:50:33 +0300
commit39a690bb36ba82cd67c87f9f72608ec845d407f1 (patch)
tree7b76157ba3edaa3a94f6521062cb1a33b70e82b0
parent4e5218a3dbf16e1338da83eff587415f356c97c0 (diff)
Fix buggy path at startup
-rw-r--r--ydb/core/tx/datashard/datashard.cpp44
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,