aboutsummaryrefslogtreecommitdiff
path: root/weed-fs/src/cmd/weed
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2013-01-20 03:40:04 -0800
committerChris Lu <chris.lu@gmail.com>2013-01-20 03:40:04 -0800
commit866d15023decfacb80db6248b888f8201e040508 (patch)
treeb938c5d0a6f3bef9f91a803d59fe41b5184b48c2 /weed-fs/src/cmd/weed
parent768eaff4b8b836add2174405e233cd54ee62ccc9 (diff)
downloadseaweedfs-866d15023decfacb80db6248b888f8201e040508.tar.xz
seaweedfs-866d15023decfacb80db6248b888f8201e040508.zip
better error handling, check in for Gulácsi Tamás
Diffstat (limited to 'weed-fs/src/cmd/weed')
-rw-r--r--weed-fs/src/cmd/weed/fix.go16
-rw-r--r--weed-fs/src/cmd/weed/volume.go12
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 {