summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine/executor/executor.hpp
AgeCommit message (Collapse)Author
9 daysExecutor: Verify types of output artifactsOliver Reiche
... as Justbuild has a strict separation between output files and output directories, but the RBE protocol does not necessarily maintain such a separation and therefore does not perform such a verification.
2025-06-16Avoid unnecessary work in accessing container entriesPaul Cristian Sarbu
- in sequence containers, use operator[] instead of .at() when accessing indices guaranteed to be in bound; - in associative containers, prefer .find() and reusing the returned const iterator to using .contains() and .at(); while there, make any so obtained iterators const if they are read-only.
2025-06-05Executor: Log action outputs sorted by pathPaul Cristian Sarbu
...also on failure or warning.
2025-06-04Executor: Check validity of action outputs in compatible modePaul Cristian Sarbu
This ensures that any entries that the standard remote execution protocol accepts but are invalid in justbuild, i.e., upwards symlinks, are rejected. For this purpose, do not fail in the action response instances, just perform the check there, as all required information is available, and set a flag that the executor can check as needed.
2025-06-04Executor: Move noexcept enforcement to main public call pointsPaul Cristian Sarbu
...and remove specifiers from methods that might throw in unexpected ways. By doing this, balance the need to avoid wrongly silencing exception sources during execution with reducing the amount of try-catch blocks.
2025-06-04FileRoot: Ensure all read blobs and trees contain valid entriesPaul Cristian Sarbu
In particular, ensure that Git roots check for, e.g., upwards symlinks, before returning blobs and trees. To ensure that only the bear minimum extra work is performed for this purpose, Git roots now keep also the root's GitTreeEntry as a field, allowing the validity check of root source trees to take place only once and only if required.
2025-06-04RepositoryConfig: Ensure consistency in reading blobs and treesPaul Cristian Sarbu
...with respect to rejecting invalid entries such as upwards symlinks. Also ensure that valid trees are only checked once by remebering known valid tress though marker files in local storage.
2025-04-17profile: also honor action cwdKlaus Aehlig
In all presentations of actions to the user, we use output paths relative to the root of the action directory. Therefore, we should do the same in the profile. However, when noting the completion of an action, we get paths as in the wire protocol, i.e., relative to the working directory of the action. Therefore, rebase appropriately.
2025-04-08executor: for a tree-overlay action, also report inputs in case of errorKlaus Aehlig
2025-04-08executor: also track begin and end of tree-overlay operationsKlaus Aehlig
Those operations require fetching objects through the network. The fetch is already restricted to only the tree-objects where a merge is necessary, leaving out unchanged trees as well as all blobs. Still, some time may be required, especially over slow networks. Therefore report this activity in the progress.
2025-04-08executor: properly report failure of tree actionsKlaus Aehlig
... calling them as such, and not trying to report command and environment.
2025-04-08Improve reporting on tree errorsKlaus Aehlig
- break lines at logicial point, following the layout of our other error messages - fix a typo - properly quote the path of the conflict
2025-04-07executor: also handle tree-overlay actionsKlaus Aehlig
2025-04-02Executor: use the passed loggerKlaus Aehlig
... instead of blindly logging globally.
2025-03-24ExecutionApi: Return TmpDirMaksim Denisov
2025-03-10Profiling: start collecting informations per actionsKlaus Aehlig
... so far, which actions where considered, and which of those were cached.
2025-02-27ArtifactBlob: Use static function for constructionMaksim Denisov
2025-02-27ArtifactBlob: Move from execution_api/common to commonMaksim Denisov
2025-02-19ApiBundle: Remove HashFunction.Maksim Denisov
And ensure every user obtains HashFunction from corresponding IExecutionApi
2025-02-19Store HashFunction by valueMaksim Denisov
Although references give an additional information about ownership, they introduce additional design difficulties.
2025-02-12BackMap: make non-copyable and non-movableMaksim Denisov
...and use std::unique_ptr for construction instead of std::optional.
2025-02-11Name library containing ExecutionConfiguration more appropriatelyKlaus Aehlig
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-07Replace ArtifactBlobContainer and BazelBlobContainerMaksim Denisov
...with explicit std::unordered_set.
2025-02-07IExecutionApi: Rename IsAvailable to GetMissingDigestsMaksim Denisov
2025-02-07IExecutionApi: Use unordered_set in IsAvailableMaksim Denisov
2025-02-07DAG: Drop usage of TransformedRange.Maksim Denisov
2024-12-19Fix cause of minor warningsOliver Reiche
2024-12-06executor: On failure to execute an action, also report which action it wasKlaus Aehlig
Failure to execute an action can be infrastructure problems, like failure to reach the server, etc. However, it can also be an action timeout; in the latter case, we want to know which action it was that did time out.
2024-12-06Log: report outputs of failed actions by defaultKlaus Aehlig
Some actions are allowed to fail, typically tests. By reporting the output of failed such actions early, the user can already have a look at those artifacts, typically a test log, while the build is still going on.
2024-11-14execution_engine: Implement IWYU suggestionsPaul Cristian Sarbu
2024-10-21configured_target: honor --expression-log-limit when shortening representationKlaus Aehlig
2024-10-07Disable misc-no-recursion checkMaksim Denisov
...since we use recursion for trees a lot, but skip this check manually.
2024-10-07Enable readability-* checks.Maksim Denisov
2024-10-07Enable readability-redundant-member-init check.Maksim Denisov
2024-10-07Enable bugprone-exception-escape checkMaksim Denisov
2024-10-07Enable bugprone-narrowing-conversions checkMaksim Denisov
2024-09-23Store HashFunction by const reference.Maksim Denisov
Despite the fact that HashFunction is a small type, it still makes sense to store it by reference to reflect the ownership. StorageConfig becomes the main holder. Reference holders store HashFunction by const ref and aren't allowed to change it. However, they are free to return HashFunction by value since this doesn't benefit readability anyhow.
2024-09-18Use TransfromedRange in DAG to return LocalPathsMaksim Denisov
2024-09-17Small code improvements based on lint warningsPaul Cristian Sarbu
- add more noexcept requirements and enforce existing - fixing inconsistencies related to function arguments - remove redundant static keywords - silencing excessive lint reporting in test cases While there, make more getters const ref.
2024-09-16execution_response: Allow failures to be reported while populatingPaul Cristian Sarbu
As populating the containers from remote response only takes place once, no assumptions should be made that this cannot fail (for example if wrong or invalid entries were produced). Instead, return error messages on failure to callers that can log accordingly.
2024-09-13Check compatibility in Executor based on the hash typeMaksim Denisov
2024-09-13Rename Compatibility class to ProtocolTraitsMaksim Denisov
...and move it to the common stage.
2024-09-13Move to GitHashesConverter functionality related to conversion of git hashesMaksim Denisov
...from Compatibility.
2024-09-11Use ArtifactDigestFactory in executorMaksim Denisov
...to create ArtifactDigests.
2024-09-09Replace ArtifactDigest::CreateMaksim Denisov
...with ArtifactDigestFactory::HashDataAs
2024-08-30Return the IsTree flag from ArtifactDigestMaksim Denisov
...and replace obvious redundant conversions to bazel_re::Digest, which were done to ensure that the digest represents a tree.
2024-08-23Executor: Also report missing output dirsOliver Reiche
2024-08-07Replace classic C boolean operators with keywordsMaksim Denisov
! => not; && => and, || => or