From a659dec00b73cc9c62916b654a6b5940770e8305 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Mon, 21 Oct 2013 17:33:23 -0700 Subject: [PATCH 1/2] fix headerTimeout should be longer and body should be shorter --- server/transporter.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/transporter.go b/server/transporter.go index 3c5002f1b..f50dd0b5f 100644 --- a/server/transporter.go +++ b/server/transporter.go @@ -18,13 +18,15 @@ import ( // This should not exceed 3 * RTT var dailTimeout = 3 * HeartbeatTimeout -// Timeout for setup internal raft http connection + receive response header -// This should not exceed 3 * RTT + RTT -var responseHeaderTimeout = 4 * HeartbeatTimeout +// Timeout for setup internal raft http connection + receive all post body +// The raft server will not send back response header until it received all the +// post body. +// This should not exceed dailTimeout + electionTimeout +var responseHeaderTimeout = 3*HeartbeatTimeout + ElectionTimeout // Timeout for receiving the response body from the server -// This should not exceed election timeout -var tranTimeout = ElectionTimeout +// This should not exceed heartbeatTimeout +var tranTimeout = HeartbeatTimeout // Transporter layer for communication between raft nodes type transporter struct { From 91cad59adabceeed1ac5ce8f6bf3492d6849dd21 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Mon, 21 Oct 2013 17:53:24 -0700 Subject: [PATCH 2/2] refactor use transtiemout --- server/transporter.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/transporter.go b/server/transporter.go index f50dd0b5f..95545a827 100644 --- a/server/transporter.go +++ b/server/transporter.go @@ -223,7 +223,7 @@ func (t *transporter) Get(urlStr string) (*http.Response, *http.Request, error) // Cancel the on fly HTTP transaction when timeout happens. func (t *transporter) CancelWhenTimeout(req *http.Request) { go func() { - time.Sleep(ElectionTimeout) + time.Sleep(tranTimeout) t.transport.CancelRequest(req) }() }