diff --git a/weed/storage/volume_loading.go b/weed/storage/volume_loading.go index 919b6e2a0..3334159ed 100644 --- a/weed/storage/volume_loading.go +++ b/weed/storage/volume_loading.go @@ -52,7 +52,9 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind v.noWriteCanDelete = true v.noWriteOrDelete = false glog.V(0).Infof("loading volume %d from remote %v", v.Id, v.volumeInfo) - v.LoadRemoteFile() + if err := v.LoadRemoteFile(); err != nil { + return fmt.Errorf("load remote file %v: %v", v.volumeInfo, err) + } alreadyHasSuperBlock = true } else if exists, canRead, canWrite, modifiedTime, fileSize := util.CheckFile(v.FileName(".dat")); exists { // open dat file diff --git a/weed/storage/volume_tier.go b/weed/storage/volume_tier.go index 198f1e23d..5d9b67192 100644 --- a/weed/storage/volume_tier.go +++ b/weed/storage/volume_tier.go @@ -1,6 +1,7 @@ package storage import ( + "fmt" "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb" "github.com/seaweedfs/seaweedfs/weed/storage/backend" @@ -60,7 +61,10 @@ func (v *Volume) HasRemoteFile() bool { func (v *Volume) LoadRemoteFile() error { tierFile := v.volumeInfo.GetFiles()[0] - backendStorage := backend.BackendStorages[tierFile.BackendName()] + backendStorage, found := backend.BackendStorages[tierFile.BackendName()] + if !found { + return fmt.Errorf("backend storage %s not found", tierFile.BackendName()) + } if v.DataBackend != nil { v.DataBackend.Close()