aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/cache/httpstructuredcache.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-09-13 11:20:01 -0400
committerGitHub <[email protected]>2023-09-13 17:20:01 +0200
commit8af7c6855591d5592a26cf9a63aae90b79857184 (patch)
tree3f8879510f81b1012a679c1fae6d6006bb7a61b6 /src/zenserver/cache/httpstructuredcache.cpp
parentfix url parsing crash (#399) (diff)
downloadzen-8af7c6855591d5592a26cf9a63aae90b79857184.tar.xz
zen-8af7c6855591d5592a26cf9a63aae90b79857184.zip
issue warning instead of assert on bad data in cid store (#400)
* issue warning instead of assert on bad data in cid store
Diffstat (limited to 'src/zenserver/cache/httpstructuredcache.cpp')
-rw-r--r--src/zenserver/cache/httpstructuredcache.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/zenserver/cache/httpstructuredcache.cpp b/src/zenserver/cache/httpstructuredcache.cpp
index 9bc8d865a..ddfd1eeb5 100644
--- a/src/zenserver/cache/httpstructuredcache.cpp
+++ b/src/zenserver/cache/httpstructuredcache.cpp
@@ -2061,19 +2061,23 @@ HttpStructuredCacheService::HandleRpcGetCacheRecords(const CacheRequestContext&
{
if (IoBuffer Chunk = m_CidStore.FindChunkByCid(Value.ContentId))
{
- ZEN_ASSERT(Chunk.GetSize() > 0);
- Value.Payload = CompressedBuffer::FromCompressedNoValidate(std::move(Chunk));
- Value.Exists = true;
- }
- else
- {
- if (EnumHasAllFlags(ValuePolicy, CachePolicy::QueryRemote))
+ if (Chunk.GetSize() > 0)
{
- NeedUpstreamAttachment = true;
- Value.ReadFromUpstream = true;
+ Value.Payload = CompressedBuffer::FromCompressedNoValidate(std::move(Chunk));
+ Value.Exists = true;
+ continue;
+ }
+ else
+ {
+ ZEN_WARN("Skipping invalid chunk in local cache '{}'", Value.ContentId);
}
- Request.Complete = false;
}
+ if (EnumHasAllFlags(ValuePolicy, CachePolicy::QueryRemote))
+ {
+ NeedUpstreamAttachment = true;
+ Value.ReadFromUpstream = true;
+ }
+ Request.Complete = false;
}
}
}