From e8ca754dca230e640454c0d2297dd2c904de2382 Mon Sep 17 00:00:00 2001 From: yah01 Date: Thu, 20 Oct 2022 22:49:28 +0800 Subject: [PATCH] Fix compaction produces empty segment (#19936) Signed-off-by: yah01 Signed-off-by: yah01 --- internal/datacoord/compaction.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/datacoord/compaction.go b/internal/datacoord/compaction.go index 96f114015f..8284f3498f 100644 --- a/internal/datacoord/compaction.go +++ b/internal/datacoord/compaction.go @@ -255,9 +255,13 @@ func (c *compactionPlanHandler) handleMergeCompactionResult(plan *datapb.Compact } log.Debug("handleCompactionResult: altering metastore after compaction") - if err := c.meta.alterMetaStoreAfterCompaction(modInfos, newSegment.SegmentInfo); err != nil { - log.Warn("handleCompactionResult: fail to alter metastore after compaction", zap.Error(err)) - return fmt.Errorf("fail to alter metastore after compaction, err=%w", err) + if newSegment.GetNumOfRows() > 0 { + if err := c.meta.alterMetaStoreAfterCompaction(modInfos, newSegment.SegmentInfo); err != nil { + log.Warn("handleCompactionResult: fail to alter metastore after compaction", zap.Error(err)) + return fmt.Errorf("fail to alter metastore after compaction, err=%w", err) + } + } else { + log.Warn("compaction produced an empty segment") } var nodeID = c.plans[plan.GetPlanID()].dataNodeID