aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-08-19 15:06:07 +0200
committerGitHub Enterprise <[email protected]>2024-08-19 15:06:07 +0200
commit6698d1bd2de0cc186d8ee12592335beddef2e633 (patch)
tree2b3f56ffe7fb00056b6e680e7e1ba49b9a5aa73a /src
parentverify that project oplog dir exists before trying to iterate it (#123) (diff)
downloadzen-6698d1bd2de0cc186d8ee12592335beddef2e633.tar.xz
zen-6698d1bd2de0cc186d8ee12592335beddef2e633.zip
don't throw exception if sidecar file is missing (#126)
* Don't throw exception if sidecar file is missing. * Log reasons for rejecting sidecar file
Diffstat (limited to 'src')
-rw-r--r--src/zenstore/cache/cachedisklayer.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/zenstore/cache/cachedisklayer.cpp b/src/zenstore/cache/cachedisklayer.cpp
index 94636bb59..c80fc59d8 100644
--- a/src/zenstore/cache/cachedisklayer.cpp
+++ b/src/zenstore/cache/cachedisklayer.cpp
@@ -516,7 +516,8 @@ BucketManifestSerializer::ReadSidecarFile(RwLock::ExclusiveLockScope& B
if (Ec)
{
- throw std::system_error(Ec, fmt::format("failed to open sidecar file '{}'", SidecarPath));
+ ZEN_WARN("Failed to read sidecar file '{}'. Reason: '{}'", SidecarPath, Ec.message());
+ return false;
}
uint64_t FileSize = SidecarFile.FileSize();
@@ -525,6 +526,10 @@ BucketManifestSerializer::ReadSidecarFile(RwLock::ExclusiveLockScope& B
if (FileSize < sizeof(BucketMetaHeader))
{
+ ZEN_WARN("Failed to read sidecar file '{}'. Minimum size {} expected, actual size: ",
+ SidecarPath,
+ sizeof(BucketMetaHeader),
+ FileSize);
return false;
}
@@ -535,17 +540,25 @@ BucketManifestSerializer::ReadSidecarFile(RwLock::ExclusiveLockScope& B
if (!Header.IsValid())
{
+ ZEN_WARN("Failed to read sidecar file '{}'. Header is invalid", SidecarPath);
return false;
}
if (Header.Version != BucketMetaHeader::Version1)
{
+ ZEN_WARN("Failed to read sidecar file '{}'. Unsupported version: {}", SidecarPath, Header.Version);
return false;
}
const uint64_t ExpectedEntryCount = (FileSize - sizeof(sizeof(BucketMetaHeader))) / sizeof(ManifestData);
if (Header.EntryCount > ExpectedEntryCount)
{
+ ZEN_WARN(
+ "Failed to read sidecar file '{}'. File is not large enough to hold expected entry count. Header count: {}, file size count: "
+ "{}",
+ SidecarPath,
+ Header.EntryCount,
+ ExpectedEntryCount);
return false;
}