From e813f60fd670786be9369dac8fb6dc7721523f97 Mon Sep 17 00:00:00 2001 From: zhulongcheng Date: Mon, 23 Mar 2020 15:46:28 +0800 Subject: [PATCH] tsdb: fix sequence check for WAL segments (#7032) Signed-off-by: zhulongcheng --- tsdb/wal/wal.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tsdb/wal/wal.go b/tsdb/wal/wal.go index 774b5f0ba5..05cc02f66a 100644 --- a/tsdb/wal/wal.go +++ b/tsdb/wal/wal.go @@ -763,21 +763,21 @@ func listSegments(dir string) (refs []segmentRef, err error) { if err != nil { return nil, err } - var last int for _, fn := range files { k, err := strconv.Atoi(fn) if err != nil { continue } - if len(refs) > 0 && k > last+1 { - return nil, errors.New("segments are not sequential") - } refs = append(refs, segmentRef{name: fn, index: k}) - last = k } sort.Slice(refs, func(i, j int) bool { return refs[i].index < refs[j].index }) + for i := 0; i < len(refs)-1; i++ { + if refs[i].index+1 != refs[i+1].index { + return nil, errors.New("segments are not sequential") + } + } return refs, nil }