summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-11-27JustMR: Parse computed repositoriesMaksim Denisov
2024-11-25Fix unchecked access to FileRootMaksim Denisov
2024-11-22AnalyseAndBuild: also write target-level cache entriesKlaus Aehlig
While there, also clean up the analysis result as soon as it is no longer needed.
2024-11-22build_utils: fix doc stringKlaus Aehlig
When the signature changed in df4ac66b272d1e26df42855143dda79fc268b558, the doc string should have been adapted as well. Do this now.
2024-11-22Computed roots: use separate statistics for each root evaluationKlaus Aehlig
... instead of mixing up the counting with the global action count, that then would exceed the top-level discovered actions.
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.