summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Nasonov <[email protected]>2025-07-18 16:24:34 +0200
committerGitHub <[email protected]>2025-07-18 16:24:34 +0200
commitd0b3ea60b3ecdc691b33e6b229848cfbb9ba4ccc (patch)
tree6b5f931a29e5e9a270faa7b980c9752517aa3e8f
parent4176245ddf17f8aa1036d87c0fc18e0122496c3f (diff)
NodeBroker: more informative error text and logs when a node is already registered with different parameters (#21128)
Co-authored-by: Andrei Nasonov <[email protected]>
-rw-r--r--ydb/core/mind/node_broker__register_node.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/ydb/core/mind/node_broker__register_node.cpp b/ydb/core/mind/node_broker__register_node.cpp
index 1700b2871c1..c24f1cf6afc 100644
--- a/ydb/core/mind/node_broker__register_node.cpp
+++ b/ydb/core/mind/node_broker__register_node.cpp
@@ -107,18 +107,22 @@ public:
auto &node = Self->Dirty.Nodes.find(it->second)->second;
NodeId = node.NodeId;
- if (node.Address != rec.GetAddress()
- || node.ResolveHost != rec.GetResolveHost())
- return Error(TStatus::WRONG_REQUEST,
- TStringBuilder() << "Another address is registered for "
- << host << ":" << port,
- ctx);
+ if (node.Address != rec.GetAddress() || node.ResolveHost != rec.GetResolveHost()) {
+ auto errorText = TStringBuilder() << "Another address is registered for " << host << ":" << port
+ << ", expected (address, resolve host) = (" << node.Address << ", " << node.ResolveHost << ")"
+ << ", got (address, resolve host) = (" << rec.GetAddress() << ", " << rec.GetResolveHost() << ")";
+
+ LOG_WARN_S(ctx, NKikimrServices::NODE_BROKER, errorText);
+ return Error(TStatus::WRONG_REQUEST, errorText, ctx);
+ }
if (node.Location != loc && node.Location != TNodeLocation()) {
- return Error(TStatus::WRONG_REQUEST,
- TStringBuilder() << "Another location is registered for "
- << host << ":" << port,
- ctx);
+ auto errorText = TStringBuilder() << "Another location is registered for " << host << ":" << port
+ << ", expected = " << node.Location.ToString()
+ << ", got = " << loc.ToString();
+
+ LOG_WARN_S(ctx, NKikimrServices::NODE_BROKER, errorText);
+ return Error(TStatus::WRONG_REQUEST, errorText, ctx);
} else if (node.Location.GetBridgePileName() != loc.GetBridgePileName()) {
return Error(TStatus::WRONG_REQUEST, "Can't change bridge pile for the node", ctx);
} else if (node.Location != loc) {