diff options
| author | Dan Engelbrecht <[email protected]> | 2024-04-24 10:33:40 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-04-24 10:33:40 +0200 |
| commit | a023cc28c4efdd8a7728278a0c8511a62e699da8 (patch) | |
| tree | 53c433615944518dd169e6d088b2799dfdaed449 | |
| parent | 5.5.0-pre0 (diff) | |
| download | zen-a023cc28c4efdd8a7728278a0c8511a62e699da8.tar.xz zen-a023cc28c4efdd8a7728278a0c8511a62e699da8.zip | |
Bugfix: Only disable oplog update capture if we have started it (#58)
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | src/zenserver/projectstore/projectstore.cpp | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 461ff68b2..13adffbf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## - Change: GCv2 is now the default option, use `--gc-v2=false` to fall back to GCv1 - Bugfix: Correctly calculate size freed/data moved from blocks in GCv2 +- Bugfix: Only disable oplog update capture if we have started it - Feature: `zen up` command improvements - --`port` allows you to specify a base port when starting an instance - --`base-dir` allows you to specify a base directory for the zenserver executable if it is not located next to the zen.exe executable diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp index 3c281275e..27e8b2463 100644 --- a/src/zenserver/projectstore/projectstore.cpp +++ b/src/zenserver/projectstore/projectstore.cpp @@ -3903,7 +3903,10 @@ public: virtual ~ProjectStoreReferenceChecker() { m_OplogLock.reset(); - m_Oplog.DisableUpdateCapture(); + if (m_OplogCaptureEnabled) + { + m_Oplog.DisableUpdateCapture(); + } } virtual std::string GetGcName(GcCtx&) override { return fmt::format("oplog: '{}'", m_Oplog.m_BasePath); } @@ -3929,6 +3932,7 @@ public: }); m_Oplog.EnableUpdateCapture(); + m_OplogCaptureEnabled = true; RwLock::SharedLockScope __(m_Oplog.m_OplogLock); if (Ctx.IsCancelledFlag) @@ -4012,6 +4016,7 @@ public: bool m_PreCache; std::unique_ptr<RwLock::SharedLockScope> m_OplogLock; std::vector<IoHash> m_References; + bool m_OplogCaptureEnabled = false; }; std::vector<GcReferenceChecker*> |