- Provide accurate info when checking journal availability
- Adding directory translation into engine tests to fix rough behavior of some unit tests that tries to access final paths.
Caching is automatically disabled for pips when the following condition is met
- number of cache entries is above a threshold (defaults to 20000, controlled by the `bxl_disable_cache_min_entries` sysctl knob), AND
- cache hit rate is below a threshold (defaults to 20%, controlled by the `bxl_disable_cache_max_hit_pct` sysctl knob)
* Use POSIX delete for casaas to ensure that files are deleted properly even if there are open handles (with FileShare.Delete).
* Run deletion tests only on Windows.
* Some additional logging for tracking content churn and statistics about content size distribution.
* More stats.
* Put files in temp dir to avoid disallowed file access.
* PR feedback.
* Fix GRPC copy bandwidth check to respect cancellation token.
* Add comment.
* Disable skip restore by default.
* Make default off for skip restore explicit.
* Handle slow tests.
* Disable test.
* Revert test parallelization.
Pip stats are reported from the sandbox kext to BuildXL as part of the ProcessTreeCompleted message; the unused char[1024] Path field is used to store those stats.
The stats are:
uint32_t lastPathLookupElemCount;
uint32_t lastPathLookupNodeCount;
uint32_t lastPathLookupNodeSize;
uint32_t numCacheHits;
uint32_t numCacheMisses;
uint32_t cacheRecordCount;
uint32_t cacheRecordSize;
uint32_t cacheNodeCount;
uint32_t cacheNodeSize;
uint32_t numForks;
uint32_t numHardLinkRetries;
The stats are logged by BuildXL. In the future, they could be used to have a more accurate estimate of memory requirements for each pip.
When making output directory private, instead of failing the build, we default to the normal behavior where we wipe out the directory. This is consistent with the treatment of preserved output file.
We also include the error code in the exception and log message when move-file failed.
* Always delete temporary file after copying
* Pass whether the put was already satisfied to PutResult
* +PR comments
* +PR comments
* Fix test
* Confusing test failure
The metadata can be used to identify the pip and its static fingerprint. This will become useful later on when lazily deleting shared opaque outputs before corresponding pips are executed.
Also rename to simpler names
- SharedOpaqueOutputLogger -> SidebandWriter
- SharedOpaqueSidebandFileReader -> SidebandReader
- SharedOpaqueOutputLoggerTests -> SidebandTests