diff options
| author | Matt Peters <[email protected]> | 2025-10-01 12:59:45 -0600 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-10-01 20:59:45 +0200 |
| commit | 1d0ab036e5b0e2e57ae49b120d1b1d4c5ebbfd45 (patch) | |
| tree | ead60ce1a82519adda54f7f04dfa5a58cb5ec4a5 | |
| parent | skip dropped oplogs in ScanForOplogs() (#534) (diff) | |
| download | zen-1d0ab036e5b0e2e57ae49b120d1b1d4c5ebbfd45.tar.xz zen-1d0ab036e5b0e2e57ae49b120d1b1d4c5ebbfd45.zip | |
Fix bug in ReplayLogEntries for large op blobs (#537)
- Bugfix: Fixed issue where large ops in oplog would fail to read properly
ReplayLogEntries: Fix bug in the case where an op is too big for OpBl…obsBuffer. The OpBufferView needs to be pointed to the temporary buffer.
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | src/zenserver/projectstore/projectstore.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index dcd6acb8c..bc0664bd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - Bugfix: Parsing of `zen builds` `--log-progress` option fixed - Bugfix: Rebuild State phase of `zen builds download` could read out of bound for target path array - Bugfix: Don't include oplogs pending delete when scanning for oplogs +- Bugfix: Fixed issue where large ops in oplog would fail to read properly ## 5.7.3 - Feature: `zen builds download` and `zen builds ls` now allows multiple wildcards for `--wildcard` and `--exclude-wildcard` separated by semicolons (;) diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp index c83ec808c..0fe66bdf1 100644 --- a/src/zenserver/projectstore/projectstore.cpp +++ b/src/zenserver/projectstore/projectstore.cpp @@ -1073,6 +1073,7 @@ struct ProjectStore::OplogStorage : public RefCounted { IoBuffer OpBuffer(Entry.Address.Size); OpBlobsBuffer.Read((void*)OpBuffer.Data(), Entry.Address.Size, OpFileOffset); + OpBufferView = OpBuffer.GetView(); if (CbValidateError Error = ValidateCompactBinary(OpBufferView, CbValidateMode::Default); Error == CbValidateError::None) { CbObjectView OpView(OpBuffer.Data()); |