| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
* moved source directories into `/src`
* updated bundle.lua for new `src` path
* moved some docs, icon
* removed old test trees
|
| |
|
| |
* add customization of assert implementation
|
| | |
|
| |
|
| |
This change makes the Ref<> constructor explicit, which can help avoid unnecessary overheads and other accidents
|
| |
|
|
|
| |
* Don't try to GC if now blocks to GC was found, regardless if we have locations in memory
* Don't let exception leak from scope guard as throw in destructor will abort application
* changelog
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* Include file, line and function in sentry log error messages
* use sync direct error logger to get correct call stacks on error
* changelog
* use d1trimfile on windows to shorten file path on windows
* constexpr -> consteval
|
| |
|
|
|
| |
a recent change which introduced support for specifying accept: implicitly via the file extension in the URI caused fallout in the dashboard which would fail to serve any content because the extension was stripped from the RelativeUri accessor. This change fixes that by retaining a copy of the Uri string view which includes the suffix
additionally, in order to test this change with both asio/http.sys paths I made the path used for all tests configurable in zenserver-test which involved pulling in a change from sb/proto which makes testing configuration a bit more flexible
|
| |
|
|
| |
required for unity builds to work properly
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* allow access to CbWriter::Save(MutableMemoryView Buffer) in CbObjectWriter to avoid extra memory allocation and copy
* fix entry index counting in rpcreplay
* adjust target pid in rpc requests for rpc replay
* allow control in rpc-record-replay over how attachments are sent
* changelog
|
| |
|
| |
removed catch2 since it's de facto not supported due to the lack of multithreading support
|
| |
|
|
| |
* move knowledge of UE env variable from zenserver to zen command line tool
* move env-fetching code to GetEnvVariable
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Feature: Zen server endpoint `prj/{project}/oplog/{log}/chunks` to post multiple attachments in one request.
- Feature: Zen server endpoint `prj/{project}/oplog/{log}/save` to save an oplog container. Accepts `CbObject` containing a compressed oplog and attachment references organized in blocks.
- Feature: Zen server endpoint `prj/{project}/oplog/{log}/load` to request an oplog container. Responds with an `CbObject` containing a compressed oplog and attachment references organized in blocks.
- Feature: Zen server endpoint `{project}/oplog/{log}/rpc` to initiate an import to or export from an external location and other operations. Use either JSon or CbPackage as payload.
- CbObject/JSon RPC format for `import` and `export` methods:
- CbObject RPC format for `getchunks` method, returns CbPackage with the found chunks, if all chunks are found the number of attachments matches number of chunks requested.
- Feature: Zen server `{project}/oplog/{log}/{hash}` now accepts `HttpVerb::kPost` as well as `HttpVerb::kGet`.
- Feature: Zen command line tool `oplog-export` to export an oplog to an external target using the zenserver oplog export endpoint.
- Feature: Zen command line tool `oplog-import` to import an oplog from an external source using the zenserver oplog import endpoint.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The blake3 library is now provided by vcpkg and marked as a dependency
via the add_package() call.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
UE side (#208)
removed all use of IoHash::FromBLAKE3() caused by interactions with CompressedBuffer APIs
|
| | |
|
| |
|
|
|
|
| |
* Read recorded requests to memory before parsing
This will more accurately simulate how requests comes in from a client
* Make a fast path for GetFinalPathNameByHandleW
Try to get the path with a fixes size buffer first to avoid always doing two calls to GetFinalPathNameByHandleW
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Use direct file read and direct buffer allocation for small IoBuffer materalization
* Reduce range of materialized data in CompositeBuffer reading
CompressedBuffer header reading often only need a small part and not the whole file
* reduce lock contention in IoBuffer::Materialize
* Reduce parsing of compressed headers
Validate header type at decompression
* faster CreateDirectories - start from leaf going up and recurse back
* optimized BufferHeader::IsValid
* Add ValidateCompressedHeader to use when we don't need the actual compressed data
Validate that we always get compressed data in CidStore::AddChunk
* changelog
|
| |
|
|
|
|
|
|
|
| |
This adds recording and playback of cache request with full data - both get and put operations can be replayed.
Invoke via web request.
`<host>/z$/exec$/start-recording?<disk-storage-path>`
`<host>/z$/exec$/stop-recording`
`<host>/z$/exec$/replay-recording?<thread-count>&<disk-storage-path>`
|
| |
|
|
|
|
|
|
| |
* Make sure we always store record/op before attachments
We don't want to store attachments first - a GC operation could then remove attachments if triggered before storing record/op
* zen::Latch
* Use latch to wait for attachments to be stored
* use zen::latch when adding attachments from project oplog import
* changelog
|
| |
|
| |
* Add `import-project` and `export-project` command line parsing
|
| |
|
|
|
|
|
|
| |
* Fix packed message parsing for absolute path
* Always enable are sharing when opening files as IoBuffers.
* Allow control over sending partial files as localfile ref
* Check "AcceptFlags" field in RPC message for allowing localfile ref in reply
* make oplog entry add operations ZEN_DEBUG level logs
* changelog
|
| |
|
|
| |
* Handle edgecase with zero size memory mapping of file
* changelog
|
| |
|
|
|
| |
* Don't create call CreateBuffer for attachement data that we only read and not keep
* changelog
* don't read oplog attachments into memory just to do a redundant store of them
|
| |
|
|
|
|
| |
* Pass along endpoint info for each upstream request
* Add more timing details in log
* more log details for single item upstream fetch
* DISABLEDQUERY over SKIP
|
| | |
|
| |
|
|
| |
use BLAKE3 port from vcpkg instead of in-tree binaries
|
| |
|
|
|
|
|
|
| |
archive (#165)
* add failing test
* CompactBinary: Fixed LoadCompactBinary to gracefully handle read failures and sizes larger than the archive
From https://p4-swarm.epicgames.net/changes/21983905
* changelog
|
| |
|
|
|
|
| |
* Include source location on ZEN_ERROR and ZEN_CRITICAL
* Use proper logging for sentry init status
* format file logger as json if .json extension is given
* changelog
|
| |
|
|
|
|
| |
* use "\\?\" prefix for windows paths
* fix path delimiters
* disable vcpkg caching
* Workaround for spdlog not being able to create directories prefixed with `\\?\`
|
| | |
|
| |
|
|
|
|
|
| |
* add macos builds
* bump timeout to 15 minutes and add timeout to create-release flow
* strip -pre suffix from version when running config
* fix pre-release check
* bump version
|
| | |
|
| | |
|
| |
|
|
| |
(#127)
|
| |
|
|
| |
implements a simple wrapper around reading stdin until EOF
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
This allows us to delete the file even if it is open for read.
We do a delete, the rename since we are not allowed to do a rename-overwrite, only delete.
As we have the shard lock for the file we want to replace we can safely do a delete+rename.
In the rare case that we fail to rename the file into place the old data is lost.
As this is a *cache* and it should be very rare this is OK.
|
| |
|
|
|
|
|
| |
Added option to use catch2 for unit tests
Currently both doctest and catch2 are supported via some compatibility macros. doctest is the default, and ZEN_USE_CATCH2 needs to be defined to switch to catch2.
Our goal is to evaluate how well catch2 works and switch to catch2 if everything pans out since UE5 now supports using catch2 for unit tests.
|
| | |
|