From bef101131cea89abc5780d38ab0d63aef0c13d9c Mon Sep 17 00:00:00 2001 From: Antonio Jesus Navarro Perez Date: Fri, 24 Nov 2017 12:57:19 +0100 Subject: Close http.Body reader when needed If we don't do that, all the goroutines opened by the Body Reader are never closed, causing a 'fatal: morestack on g0' error. --- plumbing/transport/http/common.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plumbing/transport/http/common.go b/plumbing/transport/http/common.go index 10a267a..edf1c6c 100644 --- a/plumbing/transport/http/common.go +++ b/plumbing/transport/http/common.go @@ -10,6 +10,7 @@ import ( "gopkg.in/src-d/go-git.v4/plumbing" "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp" "gopkg.in/src-d/go-git.v4/plumbing/transport" + "gopkg.in/src-d/go-git.v4/utils/ioutil" ) // it requires a bytes.Buffer, because we need to know the length @@ -45,8 +46,9 @@ func advertisedReferences(s *session, serviceName string) (*packp.AdvRefs, error return nil, err } + defer ioutil.CheckClose(res.Body, &err) + if err := NewErr(res); err != nil { - _ = res.Body.Close() return nil, err } -- cgit