diff options
| author | Stefan Boberg <[email protected]> | 2024-01-31 15:55:45 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-01-31 15:55:45 +0100 |
| commit | 8cb2b93f31c59b3261951a70c48e5da548194002 (patch) | |
| tree | b4e981b148e2cb1c31ade0fcabb1901caf13ae6b /src/zenserver/cache/httpstructuredcache.cpp | |
| parent | only try to traverse an objectstore bucket if it really exists (#646) (diff) | |
| download | zen-8cb2b93f31c59b3261951a70c48e5da548194002.tar.xz zen-8cb2b93f31c59b3261951a70c48e5da548194002.zip | |
changed RPC recording to MPSC setup (#638)
fixes rare race condition when using RPC recording for long periods of time
Diffstat (limited to 'src/zenserver/cache/httpstructuredcache.cpp')
| -rw-r--r-- | src/zenserver/cache/httpstructuredcache.cpp | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/src/zenserver/cache/httpstructuredcache.cpp b/src/zenserver/cache/httpstructuredcache.cpp index c62b5325e..95c85d6c8 100644 --- a/src/zenserver/cache/httpstructuredcache.cpp +++ b/src/zenserver/cache/httpstructuredcache.cpp @@ -1665,14 +1665,12 @@ HttpStructuredCacheService::HandleRpcRequest(HttpServerRequest& Request) auto HandleRpc = [this, RequestContext, Body = Request.ReadPayload(), ContentType, AcceptType](HttpServerRequest& AsyncRequest) mutable { - uint64_t RequestIndex = ~0ull; - if (m_RequestRecordingEnabled) { RwLock::SharedLockScope _(m_RequestRecordingLock); if (m_RequestRecorder) { - RequestIndex = m_RequestRecorder->RecordRequest( + m_RequestRecorder->RecordRequest( {.ContentType = ContentType, .AcceptType = AcceptType, .SessionId = RequestContext.SessionId}, Body); } @@ -1712,14 +1710,6 @@ HttpStructuredCacheService::HandleRpcRequest(HttpServerRequest& Request) TargetProcessHandle = m_OpenProcessCache.GetProcessHandle(RequestContext.SessionId, TargetProcessId); } CompositeBuffer RpcResponseBuffer = FormatPackageMessageBuffer(RpcResult, Flags, TargetProcessHandle); - if (RequestIndex != ~0ull) - { - RwLock::SharedLockScope _(m_RequestRecordingLock); - if (m_RequestRecorder) - { - m_RequestRecorder->RecordResponse(RequestIndex, HttpContentType::kCbPackage, RpcResponseBuffer); - } - } AsyncRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kCbPackage, RpcResponseBuffer); } else @@ -1727,16 +1717,6 @@ HttpStructuredCacheService::HandleRpcRequest(HttpServerRequest& Request) BinaryWriter MemStream; RpcResult.Save(MemStream); - if (RequestIndex != ~0ull) - { - RwLock::SharedLockScope _(m_RequestRecordingLock); - if (m_RequestRecorder) - { - m_RequestRecorder->RecordResponse(RequestIndex, - HttpContentType::kCbPackage, - IoBuffer(IoBuffer::Wrap, MemStream.GetData(), MemStream.GetSize())); - } - } AsyncRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kCbPackage, IoBuffer(IoBuffer::Wrap, MemStream.GetData(), MemStream.GetSize())); |