fix https://github.com/chrislusf/seaweedfs/issues/1079
@@ -59,6 +59,9 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind
if alreadyHasSuperBlock {
e = v.readSuperBlock()
} else {
+ if !v.SuperBlock.Initialized() {
+ return fmt.Errorf("volume %s.dat not initialized", fileName)
+ }
e = v.maybeWriteSuperBlock()
}
if e == nil && alsoLoadIndex {
@@ -69,6 +69,10 @@ func (s *SuperBlock) Bytes() []byte {
return header
+func (s *SuperBlock) Initialized() bool {
+ return s.ReplicaPlacement == nil || s.Ttl == nil
+}
+
func (v *Volume) maybeWriteSuperBlock() error {
stat, e := v.dataFile.Stat()
if e != nil {