diff --git a/server/filestore.go b/server/filestore.go index 0127f703b11..5efd5ea3fa1 100644 --- a/server/filestore.go +++ b/server/filestore.go @@ -1229,6 +1229,8 @@ func (mb *msgBlock) rebuildStateLocked() (*LostStreamData, []uint64, error) { mb.clearCacheAndOffset() buf, err := mb.loadBlock(nil) + defer recycleMsgBlockBuf(buf) + if err != nil || len(buf) == 0 { var ld *LostStreamData // No data to rebuild from here. @@ -7350,6 +7352,9 @@ func (fs *fileStore) Snapshot(deadline time.Duration, checkMsgs, includeConsumer } } + // Write out full state as well before proceeding. + fs.writeFullState() + pr, pw := net.Pipe() // Set a write deadline here to protect ourselves.