diff options
| author | Andrey Nasonov <[email protected]> | 2025-07-18 16:24:34 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-18 16:24:34 +0200 |
| commit | d0b3ea60b3ecdc691b33e6b229848cfbb9ba4ccc (patch) | |
| tree | 6b5f931a29e5e9a270faa7b980c9752517aa3e8f | |
| parent | 4176245ddf17f8aa1036d87c0fc18e0122496c3f (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.cpp | 24 |
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) { |
