From b96bcdc9c06d76e96702a0c5d7f8298d2c102da1 Mon Sep 17 00:00:00 2001 From: yuanhao Date: Fri, 14 Aug 2026 19:07:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(tracing):=20=E6=B7=BB=E5=8A=A0=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=20span=20=E7=BB=93=E6=9D=9F=E8=B0=83?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mooncake-store/src/client_service.cpp | 29 +++++++++++++++++++++++++-- mooncake-store/src/master_service.cpp | 1 + 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/mooncake-store/src/client_service.cpp b/mooncake-store/src/client_service.cpp index 6e53d64528..7e22f40354 100644 --- a/mooncake-store/src/client_service.cpp +++ b/mooncake-store/src/client_service.cpp @@ -1693,6 +1693,7 @@ tl::expected Client::Put(const ObjectKey& key, auto checksum_result = ComputeObjectChecksumForSlices( key, slices, CalculateSliceSize(slices)); if (!checksum_result) { + pt_full.End(-1); return tl::unexpected(checksum_result.error()); } object_checksum = *checksum_result; @@ -1719,6 +1720,7 @@ tl::expected Client::Put(const ObjectKey& key, ErrorCode err = start_result.error(); if (err == ErrorCode::OBJECT_ALREADY_EXISTS) { VLOG(1) << "object_already_exists key=" << key; + pt_full.End(0); return {}; } if (err == ErrorCode::NO_AVAILABLE_HANDLE) { @@ -1728,6 +1730,7 @@ tl::expected Client::Put(const ObjectKey& key, LOG(ERROR) << "Failed to start put operation for key=" << key << ": " << toString(err); } + pt_full.End(-1); return tl::unexpected(err); } @@ -1789,6 +1792,7 @@ tl::expected Client::Put(const ObjectKey& key, if (!end_result) { ErrorCode err = end_result.error(); LOG(ERROR) << "Failed to end put operation: " << err; + pt_full.End(-1); return tl::unexpected(err); } } @@ -1798,14 +1802,17 @@ tl::expected Client::Put(const ObjectKey& key, master_client_.PutRevoke(key, *finalize_decision.revoke_type); if (!revoke_result) { LOG(ERROR) << "Failed to revoke put operation"; + pt_full.End(-1); return tl::unexpected(revoke_result.error()); } } if (!finalize_decision.success) { + pt_full.End(-1); return tl::unexpected(finalize_decision.error); } + pt_full.End(0); return {}; } @@ -2138,9 +2145,15 @@ void Client::StartBatchPut(std::vector& ops, op.SetError(ErrorCode::RPC_FAIL, "BatchPutStart response size mismatch"); } + pt_batch_start.End(-1); return; } + const bool any_start_succeeded = + std::any_of(start_responses.begin(), start_responses.end(), + [](const auto& response) { return response.has_value(); }); + pt_batch_start.End(any_start_succeeded ? 0 : -1); + // Process individual responses with robust error handling for (size_t i = 0; i < active_indices.size(); ++i) { auto& op = ops[active_indices[i]]; @@ -2828,17 +2841,24 @@ std::vector> Client::BatchPut( if (client_cfg.nof_replica_num > 0) { LOG(ERROR) << "prefer_alloc_in_same_node is not supported with " "NoF replicas"; + pt_full.End(-1); return std::vector>( keys.size(), tl::unexpected(ErrorCode::INVALID_PARAMS)); } if (client_cfg.replica_num != 1) { LOG(ERROR) << "prefer_alloc_in_same_node is not supported with " "replica_num != 1"; + pt_full.End(-1); return std::vector>( keys.size(), tl::unexpected(ErrorCode::INVALID_PARAMS)); } StartBatchPut(ops, client_cfg); - return BatchPutWhenPreferSameNode(ops); + auto results = BatchPutWhenPreferSameNode(ops); + const bool any_succeeded = + std::any_of(results.begin(), results.end(), + [](const auto& result) { return result.has_value(); }); + pt_full.End(any_succeeded ? 0 : -1); + return results; } StartBatchPut(ops, client_cfg); @@ -2853,7 +2873,12 @@ std::vector> Client::BatchPut( } FinalizeBatchPut(ops); - return CollectResults(ops); + auto results = CollectResults(ops); + const bool any_succeeded = + std::any_of(results.begin(), results.end(), + [](const auto& result) { return result.has_value(); }); + pt_full.End(any_succeeded ? 0 : -1); + return results; } tl::expected Client::Remove(const ObjectKey& key, bool force) { diff --git a/mooncake-store/src/master_service.cpp b/mooncake-store/src/master_service.cpp index 030d99a33f..dbce9168fa 100644 --- a/mooncake-store/src/master_service.cpp +++ b/mooncake-store/src/master_service.cpp @@ -9400,6 +9400,7 @@ void MasterService::ClientMonitorFunc() { } } RecomputeTenantEffectiveQuotas(); + pt_unmount.End(0); } pt_monitor.End(0);