From 069a288a5976ee0c4582ac29b06e352b3687e2bc Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Sat, 2 Aug 2014 11:17:30 -0700 Subject: [PATCH] peer: wait a little before closing idle connections It seems that it needs some time to set connections that just used as idle. --- etcd/peer.go | 2 +- etcd/peer_hub.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/etcd/peer.go b/etcd/peer.go index be5fa4eeb..dd0c39e4b 100644 --- a/etcd/peer.go +++ b/etcd/peer.go @@ -122,7 +122,7 @@ func (p *peer) post(d []byte) { buf := bytes.NewBuffer(d) resp, err := p.c.Post(p.url, "application/octet-stream", buf) if err != nil { - log.Println("peer.post url=%s err=\"%v\"", p.url, err) + log.Printf("peer.post url=%s err=\"%v\"", p.url, err) return } resp.Body.Close() diff --git a/etcd/peer_hub.go b/etcd/peer_hub.go index 828be0228..9f1e3cf00 100644 --- a/etcd/peer_hub.go +++ b/etcd/peer_hub.go @@ -25,6 +25,7 @@ import ( "net/url" "path" "sync" + "time" "github.com/coreos/etcd/raft" ) @@ -77,6 +78,9 @@ func (h *peerHub) stop() { for _, p := range h.peers { p.stop() } + // http.Transport needs some time to put used connections + // into idle queues. + time.Sleep(time.Millisecond) tr := h.c.Transport.(*http.Transport) tr.CloseIdleConnections() }