aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcachestore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-05-24 22:26:45 +0200
committerStefan Boberg <[email protected]>2021-05-24 22:26:45 +0200
commit457e5853d622f9d3cff7bcaed1c9966d73931078 (patch)
tree79323336b98c6100789faa32c7810321954a61e7 /zenserver/cache/structuredcachestore.cpp
parentAdded guards against zero-sized PUTs to structured cache (diff)
downloadzen-457e5853d622f9d3cff7bcaed1c9966d73931078.tar.xz
zen-457e5853d622f9d3cff7bcaed1c9966d73931078.zip
Fixed index flags for standalone files
Diffstat (limited to 'zenserver/cache/structuredcachestore.cpp')
-rw-r--r--zenserver/cache/structuredcachestore.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/zenserver/cache/structuredcachestore.cpp b/zenserver/cache/structuredcachestore.cpp
index 46690d503..764bce93e 100644
--- a/zenserver/cache/structuredcachestore.cpp
+++ b/zenserver/cache/structuredcachestore.cpp
@@ -43,10 +43,20 @@ ZenCacheStore::Get(std::string_view InBucket, const zen::IoHash& HashKey, ZenCac
{
bool Ok = m_MemLayer.Get(InBucket, HashKey, OutValue);
+ if (Ok)
+ {
+ ZEN_ASSERT(OutValue.Value.Size());
+ }
+
if (!Ok)
{
Ok = m_DiskLayer.Get(InBucket, HashKey, OutValue);
+ if (Ok)
+ {
+ ZEN_ASSERT(OutValue.Value.Size());
+ }
+
if (Ok && (OutValue.Value.Size() <= m_DiskLayerSizeThreshold))
{
m_MemLayer.Put(InBucket, HashKey, OutValue);
@@ -61,12 +71,14 @@ ZenCacheStore::Put(std::string_view InBucket, const zen::IoHash& HashKey, const
{
// Store value and index
+ ZEN_ASSERT(Value.Value.Size());
+
+ m_DiskLayer.Put(InBucket, HashKey, Value);
+
if (Value.Value.Size() <= m_DiskLayerSizeThreshold)
{
m_MemLayer.Put(InBucket, HashKey, Value);
}
-
- m_DiskLayer.Put(InBucket, HashKey, Value);
}
//////////////////////////////////////////////////////////////////////////
@@ -460,7 +472,7 @@ ZenCacheDiskLayer::CacheBucket::PutLargeObject(const zen::IoHash& HashKey, const
// Update index
- uint64_t EntryFlags = 0;
+ uint64_t EntryFlags = DiskLocation::kStandaloneFile;
if (Value.Value.GetContentType() == ZenContentType::kCbObject)
{