aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/src/vespa/storage/distributor/persistencemessagetracker.cpp')
-rw-r--r--storage/src/vespa/storage/distributor/persistencemessagetracker.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp b/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
index 08b99cf89a8..a30663bde2f 100644
--- a/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
+++ b/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
@@ -58,6 +58,7 @@ PersistenceMessageTrackerImpl::fail(MessageSender& sender, const api::ReturnCode
if (_reply.get()) {
_reply->setResult(result);
updateMetrics();
+ transfer_trace_state_to_reply();
sender.sendReply(_reply);
_reply.reset();
}
@@ -222,10 +223,7 @@ PersistenceMessageTrackerImpl::sendReply(MessageSender& sender)
}
updateMetrics();
- if ( ! _trace.isEmpty()) {
- _trace.setStrict(false);
- _reply->getTrace().addChild(std::move(_trace));
- }
+ transfer_trace_state_to_reply();
sender.sendReply(_reply);
_reply = std::shared_ptr<api::BucketInfoReply>();
@@ -288,6 +286,15 @@ PersistenceMessageTrackerImpl::handlePersistenceReply(
}
void
+PersistenceMessageTrackerImpl::transfer_trace_state_to_reply()
+{
+ if (!_trace.isEmpty()) {
+ _trace.setStrict(false);
+ _reply->getTrace().addChild(std::move(_trace));
+ }
+}
+
+void
PersistenceMessageTrackerImpl::updateFromReply(
MessageSender& sender,
api::BucketInfoReply& reply,
@@ -318,4 +325,10 @@ PersistenceMessageTrackerImpl::updateFromReply(
}
}
+void
+PersistenceMessageTrackerImpl::add_trace_tree_to_reply(vespalib::Trace trace)
+{
+ _trace.addChild(std::move(trace));
+}
+
}