summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-19Add test case to check tree invariant in just executeSascha Roloff
2024-01-19Add tree invariant check for just execute, when uploading treesSascha Roloff
2024-01-19Add digest validity check to the blob split commandSascha Roloff
2024-01-19Fix digest consistency check to also compare sizesSascha Roloff
2024-01-19CHANGELOG: document the fix of propagating taintedness in "configure" targetsKlaus Aehlig
... that was implicitly fixed fb365b17ca339a25688ff61918280a46d64943b9.
2024-01-18Document the implementation of tc deps tracking on gcKlaus Aehlig
2024-01-16Add a test verifying the interaction between tc and gcKlaus Aehlig
Add a test that verifies that garbage collection does not violate the invariants required by the extensional project implicit in target-level caching.
2024-01-16Keep implied target-cache values aliveKlaus Aehlig
... by uplinking them appropriately.
2024-01-16TargetCacheEntry: serialize implied export targetsKlaus Aehlig
2024-01-16Analysed target: keep track of implied export targetsKlaus Aehlig
... that are eligible for caching. In this way, we can accurately keep track of the dependencies between target-level cache entries. Note that it is enough to track the export targets eligible for caching, as no target depending on an ineligible export target can be eligible.
2024-01-16TargetCacheEntry: return implied targets, if serializedKlaus Aehlig
2024-01-16Design interaction between target-level caching and garbage collectionKlaus Aehlig
The implicit extensional projection of target-level caching and garbage collection interact in a subtile way. Add a design document describing how we keep the invariant required by target-level caching in the presence of garbage collection. While, techincally, this just describes how to fix a bug, a careful design is still needed, as some fundamental changes are made.
2024-01-12end-to-end tests: wait longer for test servicesKlaus Aehlig
Certain end-to-end tests require custom services. While normally they come up in quickly (less than 2 seconds), on heavily overloaded machines it might take longer. So increase the amount of time these tests are willing to wait for the binary to start up to avoid flakyness in our CI runs.
2024-01-09just-mr: don't make the command line pretend a fixed nameKlaus Aehlig
Our fetch and launch tool is parametric in the tool to be launched. Reflect this in the documentation and do not pretend it to be the name "just" hard coded. While there, also fix the hard-coded name "git" in the documentation of the default value.
2024-01-09analysis queries serve test: Extend to check we can install served targetPaul Cristian Sarbu
2024-01-09large-blob design: fix file nameKlaus Aehlig
2024-01-09Export ["@", "abs", "absl/base", "malloc_internal"]Klaus Aehlig
... as it is used by various libaries that are exported independently.
2024-01-09test end-to-end: Check that serve endpoint correctly dispatches buildsPaul Cristian Sarbu
2024-01-09Refactor GraphTraverser to take in platform properties and dispatch listPaul Cristian Sarbu
In order for the serve endpoint to correctly dispatch a build to the correct remote-execution endpoint, the platform properties and dispatch list for a build need to be passed explicitly to the executor (via the graph traverser instance) instead of always being taken from the RemoteExecutionConfig struct. This commit implements these changes, including updating existing tests accordingly.
2024-01-09test end-to-end: Fix 'dispatch' mising from list of tests runPaul Cristian Sarbu
2024-01-09just main: Fix log messagePaul Cristian Sarbu
2024-01-08doc: Extend just serve design with 'tree of a distdir' auxiliary requestPaul Cristian Sarbu
2024-01-08just-mr distdir: Improved handling of absent rootPaul Cristian Sarbu
If root is marked absent and we're not asked to fetch absent, we can compute the resulting distdir root tree in-memory, as we have all the information. Otherwise, i.e., if we actually need to have the archives locally, we first check if the remote serve can provide them in the remote CAS before continuing as before to fetch the listed archives one at a time.
2024-01-08serve distdir tree: Client-side and API implementationsPaul Cristian Sarbu
2024-01-08serve distdir tree: Server-side implementationPaul Cristian Sarbu
2024-01-08GitRepo: Add blob lookup methodPaul Cristian Sarbu
2024-01-08just_serve.proto: Add 'tree of a distdir' requestPaul Cristian Sarbu
2024-01-08serve content or tree: Check for Git object also in local CASPaul Cristian Sarbu
2024-01-08serve source tree: Improve log messages when sync with remote failsPaul Cristian Sarbu
2024-01-08serve archive tree: Add missing check for content in local CASPaul Cristian Sarbu
When serving the tree of an archive, we should check also in the local CAS for the content blob.
2024-01-08serve configuration client: Fix logger namePaul Cristian Sarbu
2024-01-08bugfix: Add missing return in SetRemoteExecutionDispatchPaul Cristian Sarbu
This was a source of occasional std::bad_variant_access exceptions.
2024-01-08git_tree_fetch_map: Fix missing backup-to-remote behaviourPaul Cristian Sarbu
The change added to interrogate also the local CAS for the tree of a 'git tree' repository failed to add support for backing up such tree found into the remote CAS. This commit fixes the issue.
2024-01-08repos.json: ignore special in grpc source treeKlaus Aehlig
The source archive of grp contains upwards symlinks (that do not point outside the source directory). For a normal build this is not an issue; we still can generate a git tree from this archive and the parts we use of this archive never even touch a directory containing an upwards symlink. However, when just-mr desires to get this root from a just serve instance, the tree would have to be synced to the remote-execution CAS and hence the restriction applies that we only consider non-upwards relative symlinks as first-class citizens. Therefore, ignore all symlinks in this archive and this way, without changing the actual build, obtain an easy-to-manage root.
2024-01-08bootstrap: accept a build dir inside the source treeKlaus Aehlig
While it is best practise to build outside the source tree, some package formats require that a build be carried out inside the source tree. As there are no principle obstacles, as long as a non-existing directory is requested as build dir, support it by ignoring the destination in the recursive copy.
2023-12-21serve target handling: store blobs also locallyKlaus Aehlig
... before trying to upload from local storage to the remote CAS. Co-authored-by: Alberto Sartori <alberto.sartori@huawei.com>
2023-12-21Export ["@", "json", "", "json"]Klaus Aehlig
... to allow target-level caching.
2023-12-21ServeTarget: downgrade log level to performanceKlaus Aehlig
The error log level should be reserved for events that inevitably lead to a failed build. A failure to receive a target from the serve endpoint, however, is not such a case; for performance reasons, and also to have the same artifacts as everyone else in the case of non-reproducible dependencies, just inquires the serve end point for every export target whenever a serve end point is given. In this case, the build just continues even if the serve end point is, e.g., lacking a certain root.
2023-12-21BazelCasClient: remove dead code.Alberto Sartori
The removed code has been superseeded by the CreateBatchRequestsMaxSize member function.
2023-12-21BazelCasClient::DoUploadBlobs: returns the count of the uploaded blobs...Alberto Sartori
...instead of the vector containing the digests of the uploaded blobs. The returned vector was never inspected by the callers, except for its size. The tests have been accordingly amended.
2023-12-21BazelNetwork: simplify logic of DoUploadBlobsAlberto Sartori
2023-12-21BazelCasClient: split DoBatchUploadBlobs into multiple calls...Alberto Sartori
...to honor the message limit imposed by GRPC.
2023-12-21BazelCasClient: split BatchReadBlobs into multiple calls...Alberto Sartori
...to honor the maxBatchTransferSize in grpc calls.
2023-12-21BazelCasClient: Split FindMissingBlobs in multiple batches...Alberto Sartori
...such that each request does not exceeds the message limit imposed by GRPC.
2023-12-21SplitBlob: improve error message in case of a failureAlberto Sartori
2023-12-21BazelCasClient: define new templated CreateBatchRequestsMaxSize member function.Alberto Sartori
This function will ensure that each request does not exceeds the maximum message size, currently set by kMaxBatchTransferSize in the message_limits library.
2023-12-21BazelCasClient::UpdateSingleBlob: Emit a log entry upon failureAlberto Sartori
2023-12-21bazel_network: use message_limits libraryAlberto Sartori
2023-12-21src/buildtool/execution_api/commmon: add message_limits libraryAlberto Sartori
Define the threshold for the grpc messages.
2023-12-21remote/client_common.hpp: add utility functions for logging status of rpc callsAlberto Sartori