aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/actors/interconnect
diff options
context:
space:
mode:
authorarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-06-22 15:26:41 +0300
committerarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-06-22 15:26:41 +0300
commit03ae68528a1fca061195bac52f0484f6f54b2582 (patch)
tree4093239f0b89511e8ff2b29fabc76300f5ecd10a /library/cpp/actors/interconnect
parent250d29abfdc9a2526cac1e0b4b36c5b6e1d58e0c (diff)
downloadydb-03ae68528a1fca061195bac52f0484f6f54b2582.tar.gz
intermediate changes
ref:e5b94b91d513ee8cc2d1610107a4e0b462b9c9db
Diffstat (limited to 'library/cpp/actors/interconnect')
-rw-r--r--library/cpp/actors/interconnect/interconnect_channel.cpp6
-rw-r--r--library/cpp/actors/interconnect/interconnect_channel.h10
-rw-r--r--library/cpp/actors/interconnect/packet.h9
3 files changed, 11 insertions, 14 deletions
diff --git a/library/cpp/actors/interconnect/interconnect_channel.cpp b/library/cpp/actors/interconnect/interconnect_channel.cpp
index 32f015af54..f839741cb5 100644
--- a/library/cpp/actors/interconnect/interconnect_channel.cpp
+++ b/library/cpp/actors/interconnect/interconnect_channel.cpp
@@ -18,10 +18,8 @@ namespace NActors {
return false;
}
- auto& span = *event.Span;
- span.EndOk();
- const NWilson::TTraceId traceId(span);
- event.Span.reset();
+ const NWilson::TTraceId traceId(event.Span);
+ event.Span.EndOk();
LWTRACK(SerializeToPacketEnd, event.Orbit, PeerNodeId, ChannelId, OutputQueueSize, task.GetDataSize());
task.Orbit.Take(event.Orbit);
diff --git a/library/cpp/actors/interconnect/interconnect_channel.h b/library/cpp/actors/interconnect/interconnect_channel.h
index e48d294420..25e996ddca 100644
--- a/library/cpp/actors/interconnect/interconnect_channel.h
+++ b/library/cpp/actors/interconnect/interconnect_channel.h
@@ -59,13 +59,11 @@ namespace NActors {
TEventHolder& event = Pool.Allocate(Queue);
const ui32 bytes = event.Fill(ev) + (Params.UseExtendedTraceFmt ? sizeof(TEventDescr2) : sizeof(TEventDescr1));
OutputQueueSize += bytes;
- event.Span.emplace(static_cast<ui8>(15) /*verbosity*/, NWilson::ERelation::ChildOf,
- NWilson::TTraceId(ev.TraceId), now, "InInterconnectQueue");
- if (*event.Span) {
- auto& span = *event.Span;
- span
+ if (auto span = NWilson::TSpan(static_cast<ui8>(15) /*verbosity*/, NWilson::ERelation::ChildOf,
+ NWilson::TTraceId(ev.TraceId), now, "InInterconnectQueue")) {
+ event.Span = std::move(span
.Attribute("OutputQueueItems", static_cast<i64>(Queue.size()))
- .Attribute("OutputQueueSize", static_cast<i64>(OutputQueueSize));
+ .Attribute("OutputQueueSize", static_cast<i64>(OutputQueueSize)));
}
return std::make_pair(bytes, &event);
}
diff --git a/library/cpp/actors/interconnect/packet.h b/library/cpp/actors/interconnect/packet.h
index 3a6aadfb9f..9161e3af71 100644
--- a/library/cpp/actors/interconnect/packet.h
+++ b/library/cpp/actors/interconnect/packet.h
@@ -117,7 +117,7 @@ struct TEventHolder : TNonCopyable {
ui32 EventSerializedSize;
ui32 EventActuallySerialized;
mutable NLWTrace::TOrbit Orbit;
- std::optional<NWilson::TSpan> Span;
+ NWilson::TSpan Span;
ui32 Fill(IEventHandle& ev);
@@ -136,9 +136,10 @@ struct TEventHolder : TNonCopyable {
const TActorId& r = d.Recipient;
const TActorId& s = d.Sender;
const TActorId *f = ForwardRecipient ? &ForwardRecipient : nullptr;
+ Span.EndError("nondelivery");
auto ev = Event
- ? std::make_unique<IEventHandle>(r, s, Event.Release(), d.Flags, d.Cookie, f, NWilson::TTraceId(d.TraceId))
- : std::make_unique<IEventHandle>(d.Type, d.Flags, r, s, std::move(Buffer), d.Cookie, f, NWilson::TTraceId(d.TraceId));
+ ? std::make_unique<IEventHandle>(r, s, Event.Release(), d.Flags, d.Cookie, f, Span)
+ : std::make_unique<IEventHandle>(d.Type, d.Flags, r, s, std::move(Buffer), d.Cookie, f, Span);
NActors::TActivationContext::Send(ev->ForwardOnNondelivery(NActors::TEvents::TEvUndelivered::Disconnected, unsure));
}
@@ -146,7 +147,7 @@ struct TEventHolder : TNonCopyable {
Event.Reset();
Buffer.Reset();
Orbit.Reset();
- Span.reset();
+ Span = {};
}
};