aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryanyiwu <i@yanyiwu.com>2015-04-19 19:00:20 +0800
committeryanyiwu <i@yanyiwu.com>2015-04-19 19:07:06 +0800
commit6f968626627916a41b299496fd758dd3c9e6c559 (patch)
tree41bffcbf3149b16808fedb9d280fd1792ef4a39d
parent6e876e058256938427b44847aa90f98c324bf3e4 (diff)
downloadseaweedfs-6f968626627916a41b299496fd758dd3c9e6c559.tar.xz
seaweedfs-6f968626627916a41b299496fd758dd3c9e6c559.zip
FIXED: When RaftServer cannot find a leader, Return a more readable error.
Before: curl -F "file=1234" "http://127.0.0.1:9333/submit" {"error":"Post http:///dir/assign: http: no Host in request URL"} After: curl -F "file=1234" "http://127.0.0.1:9333/submit" {"error":"Raft Server not initialized!"}
-rw-r--r--go/weed/weed_server/master_server_handlers_admin.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/go/weed/weed_server/master_server_handlers_admin.go b/go/weed/weed_server/master_server_handlers_admin.go
index 0f836ff24..64c64d1e8 100644
--- a/go/weed/weed_server/master_server_handlers_admin.go
+++ b/go/weed/weed_server/master_server_handlers_admin.go
@@ -133,7 +133,12 @@ func (ms *MasterServer) submitFromMasterServerHandler(w http.ResponseWriter, r *
if ms.Topo.IsLeader() {
submitForClientHandler(w, r, "localhost:"+strconv.Itoa(ms.port))
} else {
- submitForClientHandler(w, r, ms.Topo.RaftServer.Leader())
+ masterUrl, err := ms.Topo.Leader()
+ if err != nil {
+ writeJsonError(w, r, http.StatusInternalServerError, err)
+ } else {
+ submitForClientHandler(w, r, masterUrl)
+ }
}
}