From 74c2e21ad5326a1cb6330af4b6e5e46aefb05fc3 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Mon, 27 Nov 2023 16:29:30 +0100 Subject: serve target: Add missing gc lock --- src/buildtool/serve_api/serve_service/target.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/buildtool/serve_api/serve_service/target.cpp') diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp index 000de1c4..0b33f583 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -51,6 +51,14 @@ auto TargetService::ServeTarget( auto const& target_cache_key_digest = ArtifactDigest{request->target_cache_key_id()}; + // acquire lock for CAS + auto lock = GarbageCollector::SharedLock(); + if (!lock) { + auto error_msg = fmt::format("Could not acquire gc SharedLock"); + logger_->Emit(LogLevel::Error, error_msg); + return ::grpc::Status{::grpc::StatusCode::INTERNAL, error_msg}; + } + auto const& tc = Storage::Instance().TargetCache().WithShard( ArtifactDigest{request->execution_backend_description_id()}.hash()); auto const& tc_key = -- cgit v1.2.3