fix(ec): volumes created by foreign collection due to bug in ec balance (#4864)

* fix(ec): ignore 0 byte data files

refers to parts of #4861

Signed-off-by: Tobias Gurtzick <magic@wizardtales.com>

* fix(ec): ignore volumes not from the current collection during balance

fixes #4861

Signed-off-by: Tobias Gurtzick <magic@wizardtales.com>

---------

Signed-off-by: Tobias Gurtzick <magic@wizardtales.com>
This commit is contained in:
Tobias Gurtzick
2023-09-25 19:35:43 +02:00
committed by GitHub
parent faabc695b6
commit 78dbac7702
2 changed files with 21 additions and 8 deletions

View File

@@ -2,13 +2,14 @@ package storage
import (
"fmt"
"golang.org/x/exp/slices"
"os"
"path"
"regexp"
"strconv"
"strings"
"golang.org/x/exp/slices"
"github.com/seaweedfs/seaweedfs/weed/storage/erasure_coding"
"github.com/seaweedfs/seaweedfs/weed/storage/needle"
)
@@ -163,7 +164,15 @@ func (l *DiskLocation) loadAllEcShards() (err error) {
continue
}
if re.MatchString(ext) {
info, err := fileInfo.Info()
if err != nil {
continue
}
// 0 byte files should be only appearing erroneously for ec data files
// so we ignore them
if re.MatchString(ext) && info.Size() > 0 {
if prevVolumeId == 0 || volumeId == prevVolumeId {
sameVolumeShards = append(sameVolumeShards, fileInfo.Name())
} else {