| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
| |
this change adds support for tracing http payloads when using the asio path. This was already supported when using the `--http=plugin` path and this change moves some code into a shared class for reuse.
|
| |
|
|
| |
* Make sure WriteFile() does not leave incomplete files
* use TemporaryFile and MoveTemporaryIntoPlace to avoid leaving partial files on error
|
| |
|
|
| |
* make sure we don't add more headers than we support
* don't capture for loop variables by reference for async work
|
| |
|
|
|
|
| |
- Shared memory for zenserver state may hang around after all zenserver processes exit - make sure we find a valid entry in `zen up` before bailing
- Httpasio add retry for desired port
- Httpasio only call listen() once
- Httpasio explicitly close acceptor sockets
|
| |
|
|
| |
Avoid double resize of buffer in CbWriter::SetName and CbWriter::AddBinary
Add WriteMeasuredVarUInt to avoid measuring ints twice before writing
|
| | |
|
| |
|
|
|
| |
exceptions further (#662)
Bugfix: We must not throw exceptions to calling function until all async work we spawned has returned
|
| |
|
| |
* add disk caching to block move
|
| |
|
|
| |
* improved gc/blockstore logging
* more gcv2 tests
|
| |
|
| |
* remove reference caching
|
| |
|
|
|
| |
* move structuredcachestore tests to zenstore-test
* Don't materialize entire files when hashing if it is a large files
* rewrite CompositeBuffer::Mid to never materialize buffers
|
| |
|
|
| |
added some context to http.sys API call error reporting
|
| |
|
|
| |
added ops are detected (#652)
|
| |
|
|
|
|
| |
command (#651)
* be safe and use ToText() rather than AsText() when getting http responses
* Added `--copy-log`, `--copy-cache-log` and `copy-http-log` option to zen logs command to copy logs from a local running zen server instance
|
| |
|
|
|
|
|
|
|
| |
* Save large compressed large attachments to temporary files on disk
* bump oplog block max size up to 64Mb again
* Make sure CompositeBuffer::AppendBuffers actually moves inputs when it should
* removed parallell execution of fetching payload for block assembly
it was not actually helping and added complexity
* make sure we move/release payload buffers as soon as possible
* make sure we don't read in full large attachments to memory when computing hash
|
| |
|
| |
- Bugfix: Implement two listening sockets in ASIO (ipv4+ipv6) when either we start with `--http-forceloopback` or we resort to that mode because of a failure to bind to the "any" address
|
| |
|
|
|
|
|
| |
- Improvement: Speed up oplog export by fetching/compressing big attachments on demand
- Improvement: Speed up oplog export by batch-fetcing small attachments
- Improvement: Speed up oplog import by batching writes of oplog ops
- Improvement: Tweak oplog export default block size and embed size limit
- Improvement: Add more messaging and progress during oplog import/export
|
| |
|
|
| |
input (#648)
|
| | |
|
| |
|
| |
fixes rare race condition when using RPC recording for long periods of time
|
| |
|
| |
* Only try to traverse a objectstore bucket if it really exists
|
| |
|
|
|
|
| |
(#645)
Return system error code on exception throw in zen command
Clean up HttpClient::Response::ErrorMessage to remove redundant ": "
|
| |
|
|
|
|
| |
- Improvement: More details in oplog import/export logs
- Improvement: Switch from Download to Get when fetching Refs from Jupiter as they can't be resumed anyway and streaming to disk is redundant
- Bugfix: Make sure we clear read callback when doing Put in HttpClient to avoid timeout due to not sending data when reusing sessions
- Bugfix: Respect `--ignore-missing-attachments` in `oplog-export` command when loose file is missing on disk
|
| |
|
|
| |
* make sure we properly convert compact-binary results to text when receiving errors
* log fix
|
| |
|
|
|
| |
* Change BasicFile::Read to throw exception like IoBuffer
- Don't ASSERT on dwNumberOfBytesRead == NumberOfBytesToRead - throw exception with details instead
- Use proper return type for pread()
|
| |
|
|
|
|
|
| |
* add ignore-missing-attachments option to oplog export (debugging tool)
* add more status codes to do retry for in http client
* add missing X-Jupiter-IoHash header for jupiter PutRef
* reduce oplog block size to reduce amount of redundant chunks to download
* improved logging
|
| |
|
|
| |
Clear header callback after use
Use separate temp-vector for headers
|
| |
|
|
|
|
|
| |
- Improvement: Refactored Jupiter upstream to use HttpClient
- Improvement: Added retry and resume logic to HttpClient
- Improvement: Added authentication support to HttpClient
- Improvement: Clearer logging in GCV2 compact of FileCas/BlockStore
- Improvement: Size details in oplog import logging
|
| |
|
|
| |
* improve feedback from oplog import/export
* improve oplog save performance
|
| | |
|
| |
|
| |
* get more detailed error messages from jupiter upstream
|
| |
|
| |
jobqueue - add AbortReason and properly propagate error when running async command
|
| | |
|
| | |
|
| |
|
| |
fixes issue introduced in #615
|
| |
|
|
| |
the previous implementation was quite slow due to use of mt and uniform_distribution.
|
| |
|
| |
previously the segment would call `clear()` on the `m_Entries` vector but this does not release the backing memory so we have to do the `swap` dance
|
| |
|
|
|
|
| |
* moved all RPC processing from HttpStructuredCacheService into separate CacheRpcHandler class in zenstore
* move package marshaling to zenutil. was previously in zenhttp/httpshared but it's useful in other contexts as well where we don't want to depend on zenhttp
* introduced UpstreamCacheClient, this provides a subset of functions on UpstreamCache and lives in zenstore
|
| | |
|
| |
|
| |
* Don't capture local variables in loop by reference
|
| |
|
|
| |
`xmake config -zentrace=n` would previously not build cleanly
|
| |
|
|
|
|
|
|
|
| |
* fix JobQueue test threading issue. The inner job queued with `QueueJob` would reference `I` from inside the captured closure which would subsequently disappear
* made sure application exit is thread safe
* don't try to access string data out of bounds
* keep-alive flag is accessed from multiple threads
* fix memory leaks in Zen upstream client code
* TSAN fixes for Event
|
| |
|
| |
would previously index into a reserved-but-not-sized vector which is bad but not crash-inducing bad
|
| |
|
|
| |
* fix leak in IoBuffer for manifested small chunk. previously it would null out the `m_DataPtr` member on every path from `IoBufferExtendedCore::~IoBufferExtendedCore()` but it only really makes sense to null it out when the buffer has been memory mapped
|
| |
|
|
|
| |
* ensure all access to m_Entries is done while holding lock
* RPC recorder concurrency fixes - setup/teardown of recorder needs to be done while holding an exclusive lock. Calls into recorder should be done while holding a shared lock.
|
| | |
|
| |
|
|
| |
usable logger (#615)
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* fixed v2 rpc recording issue with >4GB data per segment
* implemented recovery logic to deal with partial RPC recordings
* added check for invalid/null requests in RPC replay
* also made sure at least one worker thread is configured
* fix problem where "null" requests would cause infinite loop!
* added basic RPC recorder tests
|
| |
|
| |
- also fixes weird DateTime/TimeSpan comparison operator
|