From ab24a6e4a2f9d37ca09f879f8d4341f3261a9897 Mon Sep 17 00:00:00 2001 From: Artem Ananev Date: Tue, 11 Aug 2026 12:06:34 -0700 Subject: [PATCH] fix: 26788: (0.78) 0.77 snapshots cannot be loaded, unknown data source metadata field Signed-off-by: Artem Ananev --- .../java/com/swirlds/merkledb/MerkleDbDataSource.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/platform-sdk/swirlds-merkledb/src/main/java/com/swirlds/merkledb/MerkleDbDataSource.java b/platform-sdk/swirlds-merkledb/src/main/java/com/swirlds/merkledb/MerkleDbDataSource.java index 5593f4a85e8f..9c0b6f5411de 100644 --- a/platform-sdk/swirlds-merkledb/src/main/java/com/swirlds/merkledb/MerkleDbDataSource.java +++ b/platform-sdk/swirlds-merkledb/src/main/java/com/swirlds/merkledb/MerkleDbDataSource.java @@ -80,6 +80,11 @@ public final class MerkleDbDataSource implements VirtualDataSource { private static final FieldDefinition FIELD_DSMETADATA_INITIALCAPACITY = new FieldDefinition("initialCapacity", FieldType.UINT64, false, true, false, 3); + // FUTURE WORK: this field will be removed completely in 0.79 + @Deprecated + private static final FieldDefinition FIELD_DSMETADATA_HASHESRAMTODISKTHRESHOLD = + new FieldDefinition("hashesRamToDiskThreshold", FieldType.UINT64, false, true, false, 4); + private static final FieldDefinition FIELD_DSMETADATA_HASHCHUNKHEIGHT = new FieldDefinition("hashChunkHeight", FieldType.UINT32, false, true, false, 7); @@ -1002,6 +1007,9 @@ private boolean loadMetadata(final MerkleDbPaths sourceDir) throws IOException { maxValidKey = in.readVarLong(false); } else if (fieldNum == FIELD_DSMETADATA_INITIALCAPACITY.number()) { initialCapacity = in.readVarLong(false); + } else if (fieldNum == FIELD_DSMETADATA_HASHESRAMTODISKTHRESHOLD.number()) { + // Skip hashesRamToDiskThreshold field, it is no longer used + in.readVarLong(false); } else if (fieldNum == FIELD_DSMETADATA_HASHCHUNKHEIGHT.number()) { final int hashChunkHeight = in.readVarInt(false); if (this.hashChunkHeight != hashChunkHeight) {