aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
Commit message (Collapse)AuthorAgeFilesLines
* refactor blobstore (#458)Dan Engelbrecht2025-08-063-20/+29
| | | | | | - Improvement: Refactored build store cache to use existing CidStore implementation instead of implementation specific blob storage - **CAUTION** This will clear any existing cache when updating as the manifest version and storage strategy has changed - Bugfix: BuildStorage cache return "true" for metadata existance for all blobs that had payloads regardless of actual existance for metadata
* Set ready event when reusing an existing server instance. (#448)Martin Ridgers2025-08-041-6/+10
| | | | | * Moved firing of child-id event into a lambda * Fire notify event to parent after attaching to an existing instance * Updated changelog
* Surfaced basic z$ information to self-hosted dashboard (#441)Martin Ridgers2025-06-183-0/+124
| | | | | | - Namespaces are listed on the start page. - Namespaces can be dropped. - New page to show details of a namespace and list its buckets. - Buckets can be dropped.
* graceful wait in parallelwork destructor (#438)Dan Engelbrecht2025-06-162-68/+114
| | | | | * exception safety when issuing ParallelWork * add asserts to Latch usage to catch usage errors * extended error messaging and recovery handling in ParallelWork destructor to help find issues
* fix build store range check (#437)Dan Engelbrecht2025-06-161-1/+1
| | | | | * fix range check for blob store fetch * don't try to parse blockdesriptions if empty result is returned * add range to log when fetching blob range fails
* sentry config (#430)Dan Engelbrecht2025-06-124-37/+78
| | | | | | | | | | - Feature: Added `--sentry-environment` to `zen` and `zenserver` - Feature: Added `--sentry-debug` to `zen` and `zenserver` - Feature: Added environment variable parsing for the following options: - `UE_ZEN_SENTRY_ENABLED`: `--no-sentry` (inverted) - `UE_ZEN_SENTRY_DEBUG`: `--sentry-debug` - `UE_ZEN_SENTRY_ALLOWPERSONALINFO`: `--sentry-allow-personal-info` - `UE_ZEN_SENTRY_DSN`: `--sentry-dsn` - `UE_ZEN_SENTRY_ENVIRONMENT`: `--sentry-environment`
* revert 61b4a88f and cadaad63Dan Engelbrecht2025-06-104-78/+37
|
* add sentry configurations options for debug/environmentDan Engelbrecht2025-06-104-37/+78
| | | | | add env-variable parsing for sentry option
* `--sentry-dsn` option for zen command line and zenserver to control Sentry ↵Dan Engelbrecht2025-06-093-26/+33
| | | | | reporting endpoint (#427) moved sentry database path to temporary directory for zen commandline
* missing chunks bugfix (#424)Dan Engelbrecht2025-06-091-1/+1
| | | | | | | | | | | * make sure to close log file when resetting log * drop entries that refers to missing blocks * Don't scrub keys that has been rewritten * currectly count added bytes / m_TotalSize * fix negative sleep time in BlockStoreFile::Open() * be defensive when fetching log position * append to log files *after* we updated all state successfully * explicitly close stuff in destructors with exception catching * clean up empty size block store files
* pause, resume and abort running builds cmd (#421)Dan Engelbrecht2025-06-052-6/+10
| | | | | - Feature: `zen builds pause`, `zen builds resume` and `zen builds abort` commands to control a running `zen builds` command - `--process-id` the process id to control, if omitted it tries to find a running process using the same executable as itself - Improvement: Process report now indicates if it is pausing or aborting
* faster oplog validate (#408)Dan Engelbrecht2025-05-301-9/+16
| | | Improvement: Faster oplog validate to reduce GC wall time and disk I/O pressure
* handle exception with batch work (#401)Dan Engelbrecht2025-05-192-31/+26
| | | | | | | | | | | | | | | * use ParallelWork in rpc playback * use ParallelWork in projectstore * use ParallelWork in buildstore * use ParallelWork in cachedisklayer * use ParallelWork in compactcas * use ParallelWork in filecas * don't set abort flag in ParallelWork destructor * add PrepareFileForScatteredWrite for temp files in httpclient * Use PrepareFileForScatteredWrite when stream-decompressing files * be more relaxed when deleting temp files * allow explicit zen-cache when using direct host url without resolving * fix lambda capture when writing loose chunks * no delay when attempting to remove temp files
* keep snapshot on log delete fail (#391)Dan Engelbrecht2025-05-121-54/+7
| | | | | - Improvement: Cleaned up snapshot writing for CompactCAS/FileCas/Cache/Project stores - Improvement: Safer recovery when failing to delete log for CompactCAS/FileCas/Cache/Project stores - Improvement: Added log file reset when writing snapshot at startup for FileCas
* enable per bucket config (#388)Dan Engelbrecht2025-05-123-14/+186
| | | | Feature: Add per bucket cache configuration (Lua options file only) Improvement: --cache-memlayer-sizethreshold is now deprecated and has a new name: --cache-bucket-memlayer-sizethreshold to line up with per cache bucket configuration
* Change plugin config parsing to warn instead of throwzousar2025-05-071-8/+8
|
* optimize block store CompactBlocks (#384)Dan Engelbrecht2025-05-071-16/+8
| | | | | - Improvement: Optimize block compact reducing memcpy operations - Improvement: Handle padding of block store blocks when compacting to avoid excessive flusing of write buffer - Improvement: Handle padding when writing oplog index snapshot to avoid unnecessary flushing of write buffer
* add sentry for zen command (#373)Dan Engelbrecht2025-05-065-392/+2
| | | | * refactor sentry integration and add to zen command line tool * move add_ldflags("-framework Security")
* builds allow redirect option (#379)Dan Engelbrecht2025-05-053-40/+31
| | | * add --allow-redirect to zen builds upload/download
* iterate chunks crash fix (#376)Dan Engelbrecht2025-05-021-1/+1
| | | * Bugfix: Add explicit lambda capture in CasContainer::IterateChunks to avoid accessing state data references
* fix buildstore disksizelimit lua config name (#372)Dan Engelbrecht2025-04-241-1/+1
|
* Added config, versioning and logging for pluginsDmytro Ivanov2025-04-222-0/+73
|
* add cxxopts overload for parsing file paths from command line (#362)Dan Engelbrecht2025-04-223-54/+12
|
* xmake updatefrontendzousar2025-04-161-0/+0
|
* Make metadata presentation more genericzousar2025-04-151-23/+42
|
* xmake updatefrontendzousar2025-04-151-0/+0
|
* Fix for BigInt conversion bugzousar2025-04-151-1/+1
|
* xmake updatefrontendzousar2025-04-111-0/+0
|
* Avoid signed overflow using BigIntzousar2025-04-115-13/+16
| | | | Bias for use of BigInt when consuming integer fields in compact binary to avoid values showing up as negative due to overflow on the Number type.
* xmake updatefrontendzousar2025-04-041-0/+0
|
* Merge pull request #343 from ue-foundation/zs/web-ui-oplog-searchZousar Shaker2025-04-042-3/+7
|\ | | | | Oplog search improvements
| * Merge branch 'main' into zs/web-ui-oplog-searchZousar Shaker2025-04-044-4/+47
| |\
| * | Oplog search improvementszousar2025-04-032-3/+7
| | | | | | | | | | | | | | | | | | - Case insensitive search - Allow search of 1 or 2 character strings - Reset table when doing a null search
* | | Merge branch 'main' into zs/web-ui-blank-import-name-fixZousar Shaker2025-04-044-4/+47
|\ \ \ | | |/ | |/|
| * | blobstore size limit (#342)Dan Engelbrecht2025-04-044-4/+47
| |/ | | | | - Feature: zenserver option `--buildstore-disksizelimit` to set an soft upper limit for build storage data. Defaults to 1TB.
* | Alternate fix by explicitly initializing pkg_idzousar2025-04-041-2/+1
| |
* | Bump db versionzousar2025-04-031-1/+1
| | | | | | | | Required to refresh db contents after ID fix.
* | Don't duplicate ID bytes when more than one pkg_datazousar2025-04-031-0/+1
|/ | | | | | ID was getting extended and left shifted if we encountered multiple package data items in a single entry. So instead of the ID being 0x0c6500b7fb8dbe2e, it was 0x0C6500B7FB8DBE2E0C6500B7FB8DBE2E. When we went to look up an imported package by ID, it would not be found and the import would be presented as a blank string. Addressing this by making the first package data the only referenceable one. Second package datas are currently used for optional data blobs, and will not be imported or referenced. They are sidecar data.
* `zen oplog-export`, `zen oplog-import` for `--url` (cloud) and `--builds` ↵Dan Engelbrecht2025-04-035-24/+64
| | | | (builds) option now has `--oidctoken-exe-path` to let zen run the OidcToken executable to get and refresh authentication token (#340)
* Merge branch 'main' of https://github.ol.epicgames.net/ue-foundation/zenzousar2025-04-021-1/+1
|\
| * added --find-max-block-count option to builds upload (#337)Dan Engelbrecht2025-04-021-1/+1
| |
* | Updating frontend archivezousar2025-04-011-0/+0
|/
* builds url discovery (#334)Dan Engelbrecht2025-04-0113-33/+139
| | | | | - Feature: Added `--host` option to use Jupiters list of cloud host and zen servers to resolve best hosts - Feature: Use local zenserver as builds cache if it has the `builds` service enabled and `--cloud-discovery-host` is provided and no remote zenserver cache hosts can be found - Improvement: Added `--override-host` option as a replacement for `--url` (`--url` still works, but `--override-host` is preferred)
* long filename support (#330)Dan Engelbrecht2025-03-3110-77/+77
| | | - Bugfix: Long file paths now works correctly on Windows
* Merge branch 'main' into zs/ui-show-cook-artifactsZousar Shaker2025-03-271-0/+10
|\
| * optional compress of block chunks (#326)Dan Engelbrecht2025-03-271-0/+10
| | | | | | | | | | | | - Feature: zenserver: Add command line option `--gc-buildstore-duration-seconds` to control GC life time of build store data - Improvement: ELF and MachO executable files are no longer chunked - Improvement: Compress chunks in blocks that encloses a full file (such as small executables) - Bugfix: Strip path delimiter at end of string in StringToPath
* | Merge branch 'main' into zs/ui-show-cook-artifactsZousar Shaker2025-03-269-1/+656
|\|
| * zen build cache service (#318)Dan Engelbrecht2025-03-269-1/+656
| | | | | | | | | | | | | | | | | | - **EXPERIMENTAL** `zen builds` - Feature: `--zen-cache-host` option for `upload` and `download` operations to use a zenserver host `/builds` endpoint for storing build blob and blob metadata - Feature: New `/builds` endpoint for caching build blobs and blob metadata - `/builds/{namespace}/{bucket}/{buildid}/blobs/{hash}` `GET` and `PUT` method for storing and fetching blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/putBlobMetadata` `POST` method for storing metadata about blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/getBlobMetadata` `POST` method for fetching metadata about blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/exists` `POST` method for checking existance of blobs
* | Descriptive type conversion messageszousar2025-03-261-15/+39
| | | | | | | | Handling decompression or validation errors with more descriptive messages
* | Removed do_nothing from entry.jszousar2025-03-251-2/+0
| |