mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-22 18:33:34 +08:00
better error handling, check in for Gulácsi Tamás
This commit is contained in:
@@ -50,20 +50,28 @@ func runFix(cmd *Command, args []string) bool {
|
||||
log.Fatalf("cannot read superblock: %s", e)
|
||||
}
|
||||
|
||||
ver, _, _ := storage.ParseSuperBlock(header)
|
||||
ver, _, e := storage.ParseSuperBlock(header)
|
||||
if e != nil {
|
||||
log.Fatalf("error parsing superblock: %s", e)
|
||||
}
|
||||
|
||||
n, rest := storage.ReadNeedleHeader(dataFile, ver)
|
||||
n, rest, e := storage.ReadNeedleHeader(dataFile, ver)
|
||||
if e != nil {
|
||||
log.Fatalf("error reading needle header: %s", e)
|
||||
}
|
||||
dataFile.Seek(int64(rest), 1)
|
||||
nm := storage.NewNeedleMap(indexFile)
|
||||
offset := uint32(storage.SuperBlockSize)
|
||||
for n != nil {
|
||||
debug("key", n.Id, "volume offset", offset, "data_size", n.Size, "rest", rest)
|
||||
if n.Size > 0 {
|
||||
count, pe := nm.Put(n.Id, offset/8, n.Size)
|
||||
count, pe := nm.Put(n.Id, offset/storage.NeedlePaddingSize, n.Size)
|
||||
debug("saved", count, "with error", pe)
|
||||
}
|
||||
offset += rest + 16
|
||||
n, rest = storage.ReadNeedleHeader(dataFile, ver)
|
||||
if n, rest, e = storage.ReadNeedleHeader(dataFile, ver); e != nil {
|
||||
log.Fatalf("error reading needle header: %s", e)
|
||||
}
|
||||
dataFile.Seek(int64(rest), 1)
|
||||
}
|
||||
return true
|
||||
|
Reference in New Issue
Block a user