From 8846ce5f1dfc77a7878887bc10f7c3a06085c6d6 Mon Sep 17 00:00:00 2001
From: Aliaksandr Valialkin <valyala@victoriametrics.com>
Date: Thu, 13 Apr 2023 23:17:10 -0700
Subject: [PATCH] lib/{mergeset,storage}: make sure that
 getFlushToDiskDeadline() takes into account only in-memory parts

---
 lib/mergeset/table.go    | 6 +++---
 lib/storage/partition.go | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/mergeset/table.go b/lib/mergeset/table.go
index 96a02ce7f5..f1f82d4daf 100644
--- a/lib/mergeset/table.go
+++ b/lib/mergeset/table.go
@@ -1168,9 +1168,9 @@ func (tb *Table) mergeParts(pws []*partWrapper, stopCh <-chan struct{}, isFinal
 }
 
 func getFlushToDiskDeadline(pws []*partWrapper) time.Time {
-	d := pws[0].flushToDiskDeadline
-	for _, pw := range pws[1:] {
-		if pw.flushToDiskDeadline.Before(d) {
+	d := time.Now().Add(dataFlushInterval)
+	for _, pw := range pws {
+		if pw.mp != nil && pw.flushToDiskDeadline.Before(d) {
 			d = pw.flushToDiskDeadline
 		}
 	}
diff --git a/lib/storage/partition.go b/lib/storage/partition.go
index ffbb74b76e..a517fa63c1 100644
--- a/lib/storage/partition.go
+++ b/lib/storage/partition.go
@@ -1353,9 +1353,9 @@ func (pt *partition) mergeParts(pws []*partWrapper, stopCh <-chan struct{}, isFi
 }
 
 func getFlushToDiskDeadline(pws []*partWrapper) time.Time {
-	d := pws[0].flushToDiskDeadline
-	for _, pw := range pws[1:] {
-		if pw.flushToDiskDeadline.Before(d) {
+	d := time.Now().Add(dataFlushInterval)
+	for _, pw := range pws {
+		if pw.mp != nil && pw.flushToDiskDeadline.Before(d) {
 			d = pw.flushToDiskDeadline
 		}
 	}