summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-14CurlUrlHandle: Fix memory leak in no_proxy string matching methodPaul Cristian Sarbu
2023-03-13Update CLI11 to 2.3.2Klaus Aehlig
2023-03-13Storage: Reworked storage and garbage collectionOliver Reiche
The improved GC implementation uses refactored storage classes instead of directly accessing "unknown" file paths. The required storage class refactoring is quite substantial and outlined in the following paragraphs. The module `buildtool/file_system` was extended by: - `ObjectCAS`: a plain CAS implementation for reading/writing blobs and computing digests for a given `ObjectType`. Depending on that type, files written to the file system may have different properties (e.g., the x-bit set) or the digest may be computed differently (e.g., tree digests in non-compatible mode). A new module `buildtool/storage` was introduced containing: - `LocalCAS`: provides a common interface for the "logical CAS", which internally combines three `ObjectCAS`s, one for each `ObjectType` (file, executable, tree). - `LocalAC`: implements the action cache, which needs the `LocalCAS` for storing cache values. - `TargetCache`: implements the high-level target cache, which also needs the `LocalCAS` for storing cache values. - `LocalStorage`: combines the storage classes `LocalCAS`, `LocalAC`, and `TargetCache`. Those are initialized with settings from `StorageConfig`, such as the build root base path or number of generations for the garbage collector. `LocalStorage` is templated with a Boolean parameter `kDoGlobalUplink`, which indicates that, on every read/write access, the garbage collector should be used for uplinking across all generations (global). - `GarbageCollector`: responsible for garbage collection and the global uplinking across all generations. To do so, it employs instances of `LocalStorage` with `kDoGlobalUplink` set to false, in order to avoid endless recursion. The actual (local) uplinking within two single generations is performed by the corresponding storage class (e.g., `TargetCache` implements uplinking of target cache entries between two target cache generations etc.). Thereby, the actual knowledge how data should be uplinked is implemented by the instance that is responsible for creating the data in the first place.
2023-03-13Test: Add GC test for export targetsOliver Reiche
2023-03-13Test: Extend basic GC test by link count checkOliver Reiche
2023-03-13Test: Extend basic GC test for compatibleOliver Reiche
2023-03-13GC: Fix uplinking of ActionResults in compatibleOliver Reiche
... as internally we do not do the Tree-dance. Instead, we directly store the root Directory digest for ActionResult's OutputDirectories.
2023-03-13TargetCache: Drop dependency on execution apiOliver Reiche
2023-03-13TargetCache: Drop dependency on repository configOliver Reiche
2023-03-13Artifact: No user error on object info parse failOliver Reiche
2023-03-13Remote Tests: Dump server output to fileOliver Reiche
... instead of using pipes that are prone to get full. Also increase log level to Trace.
2023-03-13Remote Tests: Ensure writable build root existsOliver Reiche
2023-03-13just-mr: remove unnecessary double quotesKlaus T. Aehlig
... on reporting the exec command; json encoding is already quoting enough.
2023-03-10Update nlohmann::json to 3.11.2Klaus Aehlig
2023-03-10just-mr: do not unnecessarily forward log-limitKlaus Aehlig
The forwarding of the log-limit argument is only useful, if the value is different from the default.
2023-03-10just-mr: fix launcher forwardingKlaus Aehlig
A local launcher should be forwarded, if it is different to the default launcher (which is ["env", "--"]); in particular, an explictly empy launcher should be forwarded.
2023-03-10Move common defaults for just and just-mr into a separate libraryKlaus Aehlig
... and, in this way, avoid duplication of these constants that might lead to inconsistencies between those two tools later.
2023-03-10just-mr man page: document all exit codesKlaus Aehlig
2023-03-10tests: get rid of credentials repo since tests now use just execute as a ↵Alberto Sartori
remote endpoint
2023-03-10Enforce remote-execution unit testsKlaus Aehlig
... now that they no longer depend on an external remote execution.
2023-03-10Switch CC tests depending on remote executionKlaus Aehlig
... to bring their own remote-execution endpoint.
2023-03-10Add a rule for CC tests depending on remote executionKlaus Aehlig
In order to keep our tests self-contained, do not rely on an external remote-execution service to be present; instead, use `just execute` to provide the remote execution service.
2023-03-10bytestream server: bugfix: if a tree is requested, look for it *only*Alberto Sartori
in the tree CAS. Before this patch, after the checking in the tree cas, also the blob cas was checked leading to a NOT-FOUND error.
2023-03-10execution service: implement WaitExecution and ↵Alberto Sartori
google::longrunning::Operations::GetOperation For each action that is executed, an entry is added to a shared thread safe cache. Once the number of operations stored exceeds twice 2^n, where n is given by the option --log-operations-threshold, at most 2^n operations will be removed, in a FIFO scheme.
2023-03-09bugfix: bazel api tests: upload empty root for actions as Tree and not as FileAlberto Sartori
2023-03-09Just-MR: Improve logging messagesPaul Cristian Sarbu
... by reporting unsupported config values explicitly and fixing inconsistencies.
2023-03-08docs: Add SSL verification options to just-mr section-1 man pagePaul Cristian Sarbu
Two command line arguments added: one to disable SSL verification, the other to override the path to the default system CA certificate bundle.
2023-03-08Just-MR: Add logic for SSL verification during archive fetchPaul Cristian Sarbu
2023-03-08Just-MR: Add command line options for SSL verification during archive fetchPaul Cristian Sarbu
2023-03-08curl_easy_handle: Add logic for handling user SSL settingsPaul Cristian Sarbu
2023-03-08just-mr: fix options mismatchesPaul Cristian Sarbu
... both with respect to just options and the man page specifications. Option -L of just-mr was reassigned as a short name for --local-launcher, matching its use in just. Its place is now correctly held by the full name option --checkout-locations, as per the section-1 man page.
2023-03-08changelog: fix typosPaul Cristian Sarbu
2023-03-08Fix example just-mrrc in man pageOliver Reiche
2023-03-08docs: Update just-mr section-5 man page with new 'git tree' repository typePaul Cristian Sarbu
2023-03-08test: Add test for just-mr git tree repository typePaul Cristian Sarbu
2023-03-08Just-MR: Add logic for git tree repository type setupPaul Cristian Sarbu
2023-03-08Just-MR: Add tree id root mapPaul Cristian Sarbu
Map for a workspace root given as a known git tree id which is promised to be obtainable by executing a specified command.
2023-03-08GitRepo: Add method to check existence of a Git treePaul Cristian Sarbu
2023-03-07Just-mr: Add --local-launcher optionPaul Cristian Sarbu
Also update just-mr section-1 man page
2023-03-07just-mr utils: Be more verbose in just subcommand flags mappingPaul Cristian Sarbu
Make clear what fields the defined boolean values refer to.
2023-03-07Git: Move 'fake' repository log messages to more appropriate reporting levelPaul Cristian Sarbu
2023-03-07docs: Fix typo in just-mr section-1 man pagePaul Cristian Sarbu
2023-03-07Add a design document on action-controlled execution propertiesKlaus Aehlig
2023-03-06Switch shell tests to use just as remote execution endpointKlaus Aehlig
... and, in this way, ensure the test also tests properly in absence of an external remote execution system.
2023-03-06Add rule for shell tests with remote executionKlaus Aehlig
... similar to ["@", "rules", "shell/test", "script"], but implicitly starting a remote execution in the background, passing the information about that endpoint to the test via an environment variable.
2023-03-06Execution server: Fix OutputDirectory generation in compatible modeSascha Roloff
2023-03-06Progress reporting: Adjust just-mr maps statistics countingPaul Cristian Sarbu
Reporting and counting should be done as early as possible, once known that there is nothing cached.
2023-03-06CommitGitMap: Move helper function out of header filePaul Cristian Sarbu
2023-03-06ImportToGitMap: Move helper function out of header filePaul Cristian Sarbu
2023-03-06GitRepo: Add missing retval check for git oid libgit2 callsPaul Cristian Sarbu