aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* refactor MergeChunkedFolderContents to not reallocate ↵Dan Engelbrecht2025-11-041-9/+35
| | | | Result.ChunkedContent.ChunkOrders for each path added (#626)
* add `--verbose-http` option to builds commands (#630)Dan Engelbrecht2025-11-044-4/+70
|
* abort build upload if we fail to finalize a build part (#623)Dan Engelbrecht2025-11-032-14/+55
| | | * abort build upload if we fail to finalize a build part
* fix clean directory and make them use effective threading where appropriate ↵v5.7.8-pre5v5.7.8-pre3v5.7.8-pre2Dan Engelbrecht2025-11-035-92/+76
| | | | | | (#625) fix retry logic so it does not immediately sleep if file does not exist make sure we don't try to delete target folder files if we have already wiped it
* missing return statement in zen workspace create command (#628)Dan Engelbrecht2025-11-031-0/+1
|
* allow --zen-cache-host option when using builds filestore (for testing) (#627)Dan Engelbrecht2025-11-031-0/+32
|
* added MacOS-native IterateCommandlineArgs (#624)Stefan Boberg2025-11-031-1/+15
| | | fixes issue where command line arguments to control tracing would not work on Mac
* Various fixes to address issues flagged by gcc / non-UE toolchain build (#621)Stefan Boberg2025-11-0141-166/+201
| | | | | | | | | | | | | | | | | | | | * gcc: avoid using memset on nontrivial struct * redundant `return std::move` * fixed various compilation issues flagged by gcc * fix issue in xmake.lua detecting whether we are building with the UE toolchain or not * add GCC ignore -Wundef (comment is inaccurate) * remove redundant std::move * don't catch exceptions by value * unreferenced variables * initialize "by the book" instead of memset * remove unused exception reference * add #include <cstring> to fix gcc build * explicitly poulate KeyValueMap by traversing input spans fixes gcc compilation * remove unreferenced variable * eliminate redundant `std::move` which gcc complains about * fix gcc compilation by including <cstring> * tag unreferenced variable to fix gcc compilation * fixes for various cases of naming members the same as their type
* fix use-after-free in TEST_CASE("compactcas.threadedinsert") (#620)v5.7.8-pre1Stefan Boberg2025-10-301-6/+8
|
* fix minor memory leak in command line parsing (#619)Stefan Boberg2025-10-291-0/+5
| | | when calling `getdelim` in a loop, it will return an allocated block of memory even if it is at EOF
* make sure OpenProcessCache is initialized before use (#618)Stefan Boberg2025-10-291-4/+4
| | | previously, a null reference would be passed into ProjectStore constructor
* fix for Latch race (#617)Stefan Boberg2025-10-292-29/+19
| | | | | | Because the counter is decreased in `CountDown()` and subsequently checked against zero to determine if the completion event should be set: `Latch::Wait` checks the counter against zero on entry and would exit early, before waiting on the completion event. This could then lead to the `Latch` instance being torn down before the `CountDown()` does a `Set()` which could then lead to unexpected and unwanted things happening.
* fix --zentrace=no compile errors (#616)Stefan Boberg2025-10-2814-29/+40
| | | | | | * make sure the correct `UE_WITH_TRACE` conditional is used to enable/disable support code as appropriate * fixed some accidental `int32`, `int64` et al usage, due to typedefs leaking through from trace header with this fix, it is now possible to build with `--zentrace=no` again
* optimize blockstore flush (#614)Dan Engelbrecht2025-10-273-35/+66
| | | | | * rework block store block flushing to only happen once at end of block write outside of locks * fix warning at startup if no gc.dlog file exists
* use already built lookup when verifying folder (#615)Dan Engelbrecht2025-10-271-3/+2
|
* optimize filecas write file (#613)Dan Engelbrecht2025-10-241-16/+10
| | | * try to move file into place before trying speculative remove of target file
* optimize blockstore filesize (#612)Dan Engelbrecht2025-10-241-1/+11
| | | * since we only ever append to a block store file we don't need to actually flush the position
* fix gc disk load graph (#610)Dan Engelbrecht2025-10-241-3/+3
| | | * make sure our gc disk load graph includes the latest measurement value
* move cpr in-tree (#605)Stefan Boberg2025-10-247-10/+14
| | | | | | * added cpr 1.10.5 in-tree to allow updates to vcpkg without breaking the build * added asio 1.29.0 in-tree to remove one more vcpkg dependency * bumped vcpkg to 2024.06.15 to address failure to build due to use of deprecated binaries in vcpkg (404 error: `https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pkgconf-1~2.1.0-1-any.pkg.tar.zst` during build)
* fixed progress bar when scanning changed local files (#608)Dan Engelbrecht2025-10-242-23/+40
| | | * fixed progress bar when scanning changed local files
* gracefully handle broken gc dlog (#606)Dan Engelbrecht2025-10-241-0/+8
| | | * if gc.dlog is corrupt, remove and restart a new log
* refactor CasContainerStrategy::IterateOneBlock to make it more readable (#607)Dan Engelbrecht2025-10-243-92/+104
|
* in-tree spdlog (#602)Stefan Boberg2025-10-247-12/+11
| | | | move spdlog into the tree to remove dependency on vcpkg::spdlog, to allow diverging from the official version and evolve it to fit better with OTLP logging requirements
* if we are low on disk space, only run GC if it will remove any data (#603)Dan Engelbrecht2025-10-232-90/+160
| | | | * if we are low on disk space, only run GC if it will remove any data * make sure we don't treat bail of GC due to disk space as success causing 0 wait between GC passes
* add host discovery and zen cache support for oplog import (#601)Dan Engelbrecht2025-10-2317-332/+625
| | | * add host discovery and zen cache support for oplog import
* add --boost-workers option to zen builds prime-cache (#604)Dan Engelbrecht2025-10-231-0/+1
|
* remove scope in GC that prevented GC from executing (#600)Dan Engelbrecht2025-10-221-30/+31
|
* add support for OTLP logging/tracing (#599)Stefan Boberg2025-10-2239-20/+3643
| | | | | | | | - adds `zentelemetry` project which houses new functionality for serializing logs and traces in OpenTelemetry Protocol format (OTLP) - moved existing stats functionality from `zencore` to `zentelemetry` - adds `TRefCounted<T>` for vtable-less refcounting - adds `MemoryArena` class which allows for linear allocation of memory from chunks - adds `protozero` which is used to encode OTLP protobuf messages
* add `zen builds prime-cache` command (#598)Dan Engelbrecht2025-10-226-26/+481
|
* tweak worker pools for builds (#595)Dan Engelbrecht2025-10-222-17/+120
| | | * update logic for number of network and disk threads for `zen builds` commands
* make validation of completed sequences in builds download optional (#596)Dan Engelbrecht2025-10-223-2527/+2577
|
* fix error log when using TryCloneFile on Mac/Linux (#597)Dan Engelbrecht2025-10-221-3/+3
|
* fix jupiter payload validation with allow redirect (#594)Dan Engelbrecht2025-10-201-5/+8
| | | * don't validate compressed buffer payload if a range is requested
* silence warnings in CprHttpClient if request was aborted (#591)Dan Engelbrecht2025-10-202-197/+219
| | | | * silence warnings in CprHttpClient if request was aborted * refactor CprHttpClient
* Mr/dashboard stats summary tweak (#592)Martin Ridgers2025-10-202-9/+14
| | | | | | | * More robust dashboard stats summary * Updated changelog * Updated frontend zip archive
* fix builds storage stats (#590)Dan Engelbrecht2025-10-203-23/+32
| | | * restructure builds storage stats to match web-ui expectations
* updated chunking strategy (#589)Dan Engelbrecht2025-10-209-421/+666
| | | | | | | | | | - Improvement: `zen builds`now split large files that are compress only into 64 MB chunks to avoiding very large files in Cloud Storage - Improvement: `zen builds` now treats `.msixvc` files as non-compressable Moved and cleaned up compactbinary_helpers functions Tweaked fixed chunking implementation for better performance Refactored so we have one list of "non-compressable" extensions Implemented new `StandardChunkingStrategy` and move the two existing to hidden legacy namespace Added `FilteredDownloadedBytesPerSecond.Start();` call that got lost during previous refactoring
* fix gc state switching (#588)Dan Engelbrecht2025-10-171-40/+38
| | | * fix state issue in GC thread where shutting down gc did not always block gc from running
* add missing return statements for successful execution of zen workspace cmd ↵Dan Engelbrecht2025-10-171-3/+1
| | | | (#587)
* add ability to abort http requests (#586)Dan Engelbrecht2025-10-176-29/+79
| | | * add abort-check function to httpclient
* exclude .sym and .psym (#585)Dan Engelbrecht2025-10-172-15/+47
| | | | | * exclude .sym and .psym * add more text file types to list of extensions to exclude from chunking * use hash set for extensions when checking for chunking strategy
* clean up http response formatters (#584)Dan Engelbrecht2025-10-163-50/+61
| | | * remove use of 'error:' in zen output which triggers Horde CI
* missing update of m_DiskStats.WriteByteCount in WriteSequenceChunkToCache (#583)Dan Engelbrecht2025-10-161-13/+3
|
* builds download progress include validate (#582)Dan Engelbrecht2025-10-163-39/+90
| | | * take validation into account for progress feedback when downloading builds
* fix log progress quotes (#580)Dan Engelbrecht2025-10-164-15/+58
| | | | * add quotes to message in log-progress mode * improved log progress for builds upload and download
* refactor builds cmd part4 (#579)Dan Engelbrecht2025-10-162-740/+804
| | | * move lambdas to class functions
* move builds state functions to buildsavedstate.h/cpp (#577)Dan Engelbrecht2025-10-156-625/+604
|
* added separate xmake.lua for thirdparty (#578)Stefan Boberg2025-10-151-23/+7
| | | | | Moves out third-party stuff from zencore Establishes new pattern for incorporating thirdparty code. The integration is cleaner, clearer and also surfaces the code in the generated .sln
* move file i/o related files to separate file and remove duplicated code (#576)Dan Engelbrecht2025-10-156-909/+908
|
* restructured zenserver configuration (#575)Stefan Boberg2025-10-1513-210/+317
| | | this breaks out the configuration logic to allow multiple applications to share common configuration and initialization logic whilst customizing chosen aspects of the process