diff options
| author | Chris Lu <chris.lu@gmail.com> | 2013-01-20 03:40:04 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2013-01-20 03:40:04 -0800 |
| commit | 866d15023decfacb80db6248b888f8201e040508 (patch) | |
| tree | b938c5d0a6f3bef9f91a803d59fe41b5184b48c2 /weed-fs/src/cmd | |
| parent | 768eaff4b8b836add2174405e233cd54ee62ccc9 (diff) | |
| download | seaweedfs-866d15023decfacb80db6248b888f8201e040508.tar.xz seaweedfs-866d15023decfacb80db6248b888f8201e040508.zip | |
better error handling, check in for Gulácsi Tamás
Diffstat (limited to 'weed-fs/src/cmd')
| -rw-r--r-- | weed-fs/src/cmd/weed/fix.go | 16 | ||||
| -rw-r--r-- | weed-fs/src/cmd/weed/volume.go | 12 |
2 files changed, 21 insertions, 7 deletions
diff --git a/weed-fs/src/cmd/weed/fix.go b/weed-fs/src/cmd/weed/fix.go index d794374cb..deee9a81f 100644 --- a/weed-fs/src/cmd/weed/fix.go +++ b/weed-fs/src/cmd/weed/fix.go @@ -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 diff --git a/weed-fs/src/cmd/weed/volume.go b/weed-fs/src/cmd/weed/volume.go index 4ee8c31a5..ee569843f 100644 --- a/weed-fs/src/cmd/weed/volume.go +++ b/weed-fs/src/cmd/weed/volume.go @@ -176,10 +176,12 @@ func PostHandler(w http.ResponseWriter, r *http.Request) { if ne != nil { writeJson(w, r, ne) } else { - ret := store.Write(volumeId, needle) + ret, err := store.Write(volumeId, needle) errorStatus := "" needToReplicate := !store.HasVolume(volumeId) - if ret > 0 { + if err != nil { + errorStatus = "Failed to write to local disk (" + err.Error() + ")" + } else if ret > 0 { needToReplicate = needToReplicate || store.GetVolume(volumeId).NeedToReplicate() } else { errorStatus = "Failed to write to local disk" @@ -238,7 +240,11 @@ func DeleteHandler(w http.ResponseWriter, r *http.Request) { } n.Size = 0 - ret := store.Delete(volumeId, n) + ret, err := store.Delete(volumeId, n) + if err != nil { + log.Println("delete error: %s", err) + return + } needToReplicate := !store.HasVolume(volumeId) if !needToReplicate && ret > 0 { |
