aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authorAlexander Rutkovsky <alexvru@mail.ru>2022-03-15 21:03:01 +0300
committerAlexander Rutkovsky <alexvru@mail.ru>2022-03-15 21:03:01 +0300
commita68afc731202027f105bc5723ee11788017c29e2 (patch)
tree9f9640112612387063091b109bcd4e2adb50b5b5 /library/cpp
parent94dc3af93a40e68dbc0f2f54c00fe3ee87b2ccca (diff)
downloadydb-a68afc731202027f105bc5723ee11788017c29e2.tar.gz
Fix location issue KIKIMR-14513
ref:363acfe3059d1ed2b82416f28087ff2d1d32aeae
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/actors/core/interconnect.cpp7
-rw-r--r--library/cpp/actors/core/interconnect.h3
2 files changed, 7 insertions, 3 deletions
diff --git a/library/cpp/actors/core/interconnect.cpp b/library/cpp/actors/core/interconnect.cpp
index a42278e669e..9b377cbb008 100644
--- a/library/cpp/actors/core/interconnect.cpp
+++ b/library/cpp/actors/core/interconnect.cpp
@@ -106,7 +106,7 @@ namespace NActors {
return res;
}
- void TNodeLocation::Serialize(NActorsInterconnect::TNodeLocation *pb) const {
+ void TNodeLocation::Serialize(NActorsInterconnect::TNodeLocation *pb, bool compatibleWithOlderVersions) const {
const NProtoBuf::Descriptor *descriptor = NActorsInterconnect::TNodeLocation::descriptor();
const NProtoBuf::Reflection *reflection = pb->GetReflection();
NProtoBuf::UnknownFieldSet *unknown = pb->mutable_unknown_fields();
@@ -117,11 +117,14 @@ namespace NActors {
unknown->AddLengthDelimited(key)->assign(value);
}
}
+ if (compatibleWithOlderVersions) {
+ GetLegacyValue().Serialize(pb);
+ }
}
TString TNodeLocation::GetSerializedLocation() const {
NActorsInterconnect::TNodeLocation pb;
- Serialize(&pb);
+ Serialize(&pb, false);
TString s;
const bool success = pb.SerializeToString(&s);
Y_VERIFY(success);
diff --git a/library/cpp/actors/core/interconnect.h b/library/cpp/actors/core/interconnect.h
index 679a4b8cc6f..5ecac1deec4 100644
--- a/library/cpp/actors/core/interconnect.h
+++ b/library/cpp/actors/core/interconnect.h
@@ -72,7 +72,8 @@ namespace NActors {
TNodeLocation& operator =(const TNodeLocation&) = default;
TNodeLocation& operator =(TNodeLocation&&) = default;
- void Serialize(NActorsInterconnect::TNodeLocation *pb) const;
+ // compatibleWithOlderVersions should be set to true when this protobuf is possibly going to be delivered to 21-4
+ void Serialize(NActorsInterconnect::TNodeLocation *pb, bool compatibleWithOlderVersions) const;
TString GetSerializedLocation() const;
TString GetDataCenterId() const { return ToStringUpTo(TKeys::DataCenter); }