add vif file versions in case loading superblock fails
This commit is contained in:
@@ -39,12 +39,12 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
hasVolumeInfoFile := v.maybeLoadVolumeInfo() && v.volumeInfo.Version != 0
|
hasVolumeInfoFile := v.maybeLoadVolumeInfo()
|
||||||
|
|
||||||
if v.HasRemoteFile() {
|
if v.HasRemoteFile() {
|
||||||
v.noWriteCanDelete = true
|
v.noWriteCanDelete = true
|
||||||
v.noWriteOrDelete = false
|
v.noWriteOrDelete = false
|
||||||
glog.V(0).Infof("loading volume %d from remote %v", v.Id, v.volumeInfo.Files)
|
glog.V(0).Infof("loading volume %d from remote %v", v.Id, v.volumeInfo)
|
||||||
v.LoadRemoteFile()
|
v.LoadRemoteFile()
|
||||||
alreadyHasSuperBlock = true
|
alreadyHasSuperBlock = true
|
||||||
} else if exists, canRead, canWrite, modifiedTime, fileSize := util.CheckFile(v.FileName(".dat")); exists {
|
} else if exists, canRead, canWrite, modifiedTime, fileSize := util.CheckFile(v.FileName(".dat")); exists {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
|
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage/backend"
|
"github.com/chrislusf/seaweedfs/weed/storage/backend"
|
||||||
_ "github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend"
|
_ "github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend"
|
||||||
|
"github.com/chrislusf/seaweedfs/weed/storage/needle"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (v *Volume) GetVolumeInfo() *volume_server_pb.VolumeInfo {
|
func (v *Volume) GetVolumeInfo() *volume_server_pb.VolumeInfo {
|
||||||
@@ -14,14 +15,24 @@ func (v *Volume) GetVolumeInfo() *volume_server_pb.VolumeInfo {
|
|||||||
|
|
||||||
func (v *Volume) maybeLoadVolumeInfo() (found bool) {
|
func (v *Volume) maybeLoadVolumeInfo() (found bool) {
|
||||||
|
|
||||||
v.volumeInfo, v.hasRemoteFile, _ = pb.MaybeLoadVolumeInfo(v.FileName(".vif"))
|
var err error
|
||||||
|
v.volumeInfo, v.hasRemoteFile, err = pb.MaybeLoadVolumeInfo(v.FileName(".vif"))
|
||||||
|
|
||||||
|
if v.volumeInfo.Version == 0 {
|
||||||
|
v.volumeInfo.Version = uint32(needle.CurrentVersion)
|
||||||
|
}
|
||||||
|
|
||||||
if v.hasRemoteFile {
|
if v.hasRemoteFile {
|
||||||
glog.V(0).Infof("volume %d is tiered to %s as %s and read only", v.Id,
|
glog.V(0).Infof("volume %d is tiered to %s as %s and read only", v.Id,
|
||||||
v.volumeInfo.Files[0].BackendName(), v.volumeInfo.Files[0].Key)
|
v.volumeInfo.Files[0].BackendName(), v.volumeInfo.Files[0].Key)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
if err != nil {
|
||||||
|
glog.Warningf("load volume %d.vif file: %v", v.Id, err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user