diff options
Diffstat (limited to 'storage/src/vespa/storage/distributor/persistencemessagetracker.cpp')
-rw-r--r-- | storage/src/vespa/storage/distributor/persistencemessagetracker.cpp | 21 |
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)); +} + } |