Skip to content

Commit 407d159

Browse files
committed
Fix oplog truncation
1 parent 1427634 commit 407d159

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/Index.zig

+4
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ fn doCheckpoint(self: *Self) !bool {
215215

216216
try self.updateManifestFile(file_segments_update.segments.value);
217217

218+
defer self.oplog.truncate(target.value.info.getLastCommitId()) catch |err| {
219+
log.warn("failed to truncate oplog: {}", .{err});
220+
};
221+
218222
// commit updated lists
219223

220224
self.segments_lock.lock();

src/Oplog.zig

+2-1
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,11 @@ fn truncateNoLock(self: *Self, commit_id: u64) !void {
187187
var buf: [file_name_size]u8 = undefined;
188188
while (pos > 0) {
189189
pos -= 1;
190-
const file_info = self.files.orderedRemove(pos);
190+
const file_info = self.files.items[pos];
191191
const file_name = try generateFileName(&buf, file_info.id);
192192
log.info("deleting oplog file {s}", .{file_name});
193193
try self.dir.deleteFile(file_name);
194+
_ = self.files.orderedRemove(pos);
194195
}
195196
}
196197

0 commit comments

Comments
 (0)