summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel
AgeCommit message (Collapse)Author
2025-02-11BazelCapabilitiesClient: avoid unreasonable retries.Maksim Denisov
2025-02-11Name library containing ExecutionConfiguration more appropriatelyKlaus Aehlig
2025-02-10Take into account server capabilities while batching.Maksim Denisov
2025-02-10Store BazelCapabilitiesClient in BazelNetworkMaksim Denisov
...and pass it to BazelCasClient
2025-02-10Implement BazelCapabilitiesClientMaksim Denisov
2025-02-10BazelNetworkReader: Let BazelCasClient handle splitting of requestsMaksim Denisov
2025-02-10BazelCasClient: Honor content size on batch requests.Maksim Denisov
2025-02-10BazelCasClient: BatchReadBlobs: Process one request at once.Maksim Denisov
2025-02-10BazelCasClient: BatchUpdateBlobs: Process one request at onceMaksim Denisov
2025-02-10BazelCasClient: FindMissingBlobs: Process one request at onceMaksim Denisov
2025-02-10BazelCasClient: FindMissingBlobs: consider missing digests from failed requestsMaksim Denisov
2025-02-10BazelCasClient: replace ProcessResponseContentsMaksim Denisov
...with direct access to mutable fields and drop additional deep copies.
2025-02-10Rename kMaxBatchTransferSize to MessageLimits::kMaxGrpcLengthMaksim Denisov
2025-02-07Move implementation of ContentBlob to artifact_blobMaksim Denisov
...and remove ContentBlob.
2025-02-07Rename artifact_blob_container to artifact_blobMaksim Denisov
2025-02-07CommonApi: Remove template parameter from UploadAndUpdateContainerMaksim Denisov
...since it works with ArtifactBlobs only.
2025-02-07BazelCasClient: Use ArtifactDigest in FindMissingBlobsMaksim Denisov
2025-02-07BazelCasClient: Use ArtifactDigest in bytestream readingMaksim Denisov
2025-02-07BazelCasClient: Use ArtifactBlob in UpdateSingleBlobMaksim Denisov
2025-02-07BazelCasClient: Use ArtifactBlob in BatchUpdateBlobsMaksim Denisov
2025-02-07BazelCasClient: Use ArtifactDigest in BatchReadBlobsMaksim Denisov
...and drop testing of invalid digests since ArtifactDigest always guarantees to hold a valid digest.
2025-02-07BazelNetwork: Use ArtifactDigests in IsAvailableMaksim Denisov
2025-02-07BazelNetwork: Use ArtifactBlobs in UploadBlobsMaksim Denisov
2025-02-07BazelCasClient: Drop iterators in BatchReadBlobsMaksim Denisov
2025-02-07BazelCasClient: Drop iterators in BatchUpdateBlobsMaksim Denisov
2025-02-07BazelCasClient: Drop iterators in FindMissingBlobsMaksim Denisov
...and remove extra method.
2025-02-07BazelNetworkReader: Validate same blobs just once while batching.Maksim Denisov
2025-02-07BaselCasClient: fix possible loss of data in BatchReadBlobs.Maksim Denisov
2025-02-07BazelNetworkReader: Implement validation for ArtifactBlobsMaksim Denisov
2025-02-07BazelNetworkReader: Use ArtifactDigest in IncrementalReaderMaksim Denisov
...and while there, pass digests needed to be read by pointer to IncrementalReader to avoid an extra copy.
2025-02-07BazelNetworkReader: make reading methods that use bazel digest privateMaksim Denisov
2025-02-07BazelNetwork: Drop iterators in DoUploadBlobsMaksim Denisov
2025-02-07Replace ArtifactBlobContainer and BazelBlobContainerMaksim Denisov
...with explicit std::unordered_set.
2025-02-07Replace ContentBlobContainer<T> with std::unordered_setMaksim Denisov
2025-02-07BazelNetwork: Use unordered_set in UploadBlobs instead of BazelBlobContainerMaksim Denisov
2025-02-07IExecutionApi: Rename IsAvailable to GetMissingDigestsMaksim Denisov
2025-02-07IExecutionApi: Use unordered_set in IsAvailableMaksim Denisov
2025-02-07Remove logging related to blob splitting form BazelApiMaksim Denisov
2025-02-07BazelCasClient: Use unordered_set in FindMissingBlobsMaksim Denisov
2024-12-19Move functionality for staging from CAS to output paths to TreeReaderMaksim Denisov
...and employ it in LocalApi.
2024-12-19Fix cause of minor warningsOliver Reiche
2024-12-19Fix struct member initializationOliver Reiche
2024-12-19Remove unused headersOliver Reiche
2024-12-09Remove redundant copies from BazelApi::IsAvailableMaksim Denisov
...and ignore non-requested digests.
2024-12-05While there, also avoid unnecessary indirection in RertrieveToPaths.Klaus Aehlig
2024-12-05execution api: support retrieving from more than one API, also for fdKlaus Aehlig
Extend the api to optionally accept a different API for preferred fetching. This is already supported when fetching to a file path; therefore, extend to keep the interface symmetric.
2024-11-14execution_api/remote: Implement IWYU suggestionsPaul Cristian Sarbu
2024-10-28Retry Execution on FAILED_PRECONDITIONKlaus Aehlig
The specification for this status code is as follows. One or more errors occurred in setting up the action requested, such as a missing input or command or no worker being available. The client may be able to fix the errors and retry. We routinely ensure all inputs are available to the remote execution before we start an action, so all prerequisites will be there on a compliant server, however might not actually be on a server where the CAS only has eventual consistency or is incorrect (due to old cache entries on CAS purge) in its answer to FindMissingBlobs. While we have no guarantee that a retry will help, we still retry; at least in the case of an unavailable worker or CAS entries not yet available due to eventual consistency, this will help. Also, we log at debug lvel the full response, including the repeated Any message. In this way, we can find out what useful information (if any) is sent by popular remote-execution services and implement more specific mitigations in the future.
2024-10-28BatchUploadBlobs: decrease log level for retried tasksKlaus Aehlig
In BatchUploadBlobs we accept short writes and, in case of no progress, fall back to single blob upload. Therefore, failure to upload blobs is not fatal and therefore should not be reported at error level. Decrease the log level accordingly: a protocol failure to upload is a performance-related event (as the retry needs additional time), catching an internal exception is something that shouldn't really happen, so we warn the user.
2024-10-25bugfix: bazel_network.cpp: fix handling of ongoing actionsAlberto Sartori
The rpc Execution::Execute returns stream google.longrunning.Operation. When the client reads the stream, the server can report that the operation is still in progress and the client has to wait. Before this patch, we were not checking for this particular condition. As a result, an ongoing action was interpreted as an execution failure.