summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-11-21Computed-roots evaluation: improve reportingKlaus Aehlig
For subcomputations add the log to CAS and only report the blob identifier. Also, indicate at the beginning, that computed roots are to be computed. While there, simplify code by using the ToString() method of computed roots.
2024-11-21FileRoot::ComputedRoot: add ToString() methodKlaus Aehlig
2024-11-21AnalyseAndBuild: properly pass the loggerKlaus Aehlig
... also to the ToResult method of the result map.
2024-11-21ObjectCas: demote log message on absent blob to traceKlaus Aehlig
The way we use our object cas, it is not unsual that a blob asked for is not present. Therefore, logging this at debug level floods that level with too many messages irrelevant for debugging. Fix this, be demoting to trace level.
2024-11-21Materialize computed roots before top-level analysisKlaus Aehlig
Add a basic implementation of computed roots. So far we neither enforce nor make good use of the fact that the underlying target of a computed root has to be an export target of a content-fixed repository; instead, we always install the root to a temporary directory and pick it up from there. Still, the basic functionality is there, and it is minimally useful.
2024-11-21Implement AnalyseAndBuild functionMaksim Denisov
2024-11-21RepositoryConfig: support setting a computed rootKlaus Aehlig
2024-11-21Add data structure for the description of a computed rootKlaus Aehlig
2024-11-20Return ResultTargetMap from analysisMaksim Denisov
...instead of filling in a map passed from the outside.
2024-11-20Serve service: properly lock git operations against each otherKlaus Aehlig
... by using an exclusive lock. A lock of which only ever shared instances are requested has no synchronisation effect. Fix this.
2024-11-14utils: Implement IWYU suggestionsMaksim Denisov
2024-11-14other_tools/utils: Implement IWYU suggestionsMaksim Denisov
2024-11-14other_tools/repo_map,root_maps: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14other_tools/ops_maps: Implement IWYU suggestionsPaul Cristian Sarbu
Also follow-up changes to ensure build success.
2024-11-14other_tools/just_mr: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14other_tools/git_operations: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14system: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14storage: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14serve_api: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14progress_reporting: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14multithreading: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14main: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14logging: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14graph_traverser: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14file_system: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14execution_engine: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14execution_api remaining: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14execution_api/remote: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14execution_api/execution_service: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14crypto: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14common: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14build_engine: Implement IWYU suggestionsPaul Cristian Sarbu
Requires the use of a pragma to avoid wrong removal suggestion for path_hash.hpp. Co-authored-by: Maksim Denisov <denisov.maksim@huawei.com>
2024-11-14auth: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14tpp includes: Add hint for IWYU lintingPaul Cristian Sarbu
IWYU needs to be explicitly instructed how to handle included .tpp files in order to not falsely suggest their removal. Conversely, it also needs to know not to suggest including .tpp files instead of the corresponding .hpp files.
2024-11-14target_cache_key: Move hash definition to class headerPaul Cristian Sarbu
2024-11-13RepositoryConfig: get rid of implict usage assumptionKlaus Aehlig
The class RepositoryConfig is mutable, but has a set-once derived value, the largest bisimulation of the repositories described. This construction is problematic in that it assumes that all modifications be done before the first inspection of a value happens that implicitly triggers the setting of the derived value. Therefore, at the very least reset this derived value if a repository is modified.
2024-11-13just main: subcommand traverse should only traverseKlaus Aehlig
... regardless of success. If traversing fails, we should just return failure. In this way, we can also avoid an unnecessary else-branch. While there, always return normally for tarverse, avoiding direct exits.
2024-11-04Start 1.5 development cycleKlaus Aehlig
2024-11-04Release 1.4.0v1.4.0Klaus Aehlig
2024-10-30Release 1.4.0~beta1v1.4.0-beta1Klaus Aehlig
2024-10-29Graph traverser: fix wrong wording in trace-level messageKlaus Aehlig
As we write the first message about the actual upload of a blob, we should use future rather than past tense. Also, again at trace level, add a message of successful completion, if we succeeded.
2024-10-29Clean up unused dependenciesKlaus Aehlig
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-28WithRetry: Support reduced log level for failuresKlaus Aehlig
In some situations, we use a retry strategy, but in case of complete failure have another way of attempting that task. In this case, we should not emmit an error message right away. Add support for this.
2024-10-25Add dependencies explicitly that are included directlyKlaus Aehlig
... instead of relying on those dependencies being pulled in indirectly.
2024-10-25Enable compatible mode for just-mr and SourceTree serve service...Paul Cristian Sarbu
...by using the new local api that can handle any remote endpoint, irrespective of protocol. Also ensure all tests for the serve service are now being run both in native and compatible modes.
2024-10-25Add new local execution api that can interact with any remotePaul Cristian Sarbu
...irespective of the used protocol. This api is useful in enabling just-mr and the SourceTree service of just serve to interact seamlessly with any remote-execution endpoint.
2024-10-25serve service: Set correct protocol-aware digests in responsesPaul Cristian Sarbu
When returning digests in responses, ensure they are of the type the remote would know. Compatible digests can be found vis the stored mappings from Git digests to bazel objects.
2024-10-25serve service: Use digest when requesting serve to set up a treePaul Cristian Sarbu
...instead of passing just the Git hash, which imposes the remote to always be native. The serve service proto file is updated accordingly.