From 2205de23916f0d4df0b5d22b91adb757306883d5 Mon Sep 17 00:00:00 2001 From: Zakhar Bessarab Date: Thu, 11 Apr 2024 11:26:06 +0400 Subject: [PATCH] lib/mergeset: fix flushing incorrect set of inmemoryBlocks (#6089) Follow-up for bace9a25011d9175f9fa6861e129f8ed8f9e0521 Related: - https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6069 - https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5959 Signed-off-by: Zakhar Bessarab Co-authored-by: Aliaksandr Valialkin --- docs/CHANGELOG.md | 2 +- lib/mergeset/table.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 43084d925f..7be173f822 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -32,9 +32,9 @@ See also [LTS releases](https://docs.victoriametrics.com/lts-releases/). * FEATURE: [vmbackupmanager](https://docs.victoriametrics.com/vmbackupmanager.html): allow specifying custom backup interval via `-backupInterval` command-line flag. See [this feature request](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5966). +* BUGFIX: fix incorrect merge of partitions which could lead to losing records for IndexDB. See [this](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5959) and [this](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6069) issues. * BUGFIX: [vmbackupmanager](https://docs.victoriametrics.com/vmbackupmanager.html): fix panic when performing a restore from GCS. Previously, filters for GCS objects were not properly set which caused objects to be returned instead of prefixes. - ## [v1.100.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.100.0) Released at 2024-04-04 diff --git a/lib/mergeset/table.go b/lib/mergeset/table.go index f22f2406fc..b9202f4e5c 100644 --- a/lib/mergeset/table.go +++ b/lib/mergeset/table.go @@ -198,7 +198,7 @@ func (riss *rawItemsShards) addIbsToFlush(tb *Table, ibsToFlush []*inmemoryBlock } riss.ibsToFlush = append(riss.ibsToFlush, ibsToFlush...) if len(riss.ibsToFlush) >= maxBlocksPerShard*cgroup.AvailableCPUs() { - ibsToMerge = ibsToFlush + ibsToMerge = riss.ibsToFlush riss.ibsToFlush = nil } riss.ibsToFlushLock.Unlock()