From 214d0189113347a5475c227feff23330196613f5 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Thu, 11 Feb 2016 15:32:46 -0800 Subject: [PATCH] Fix deadlock in nettest webserver --- test/images/network-tester/Makefile | 4 ++-- test/images/network-tester/webserver.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/images/network-tester/Makefile b/test/images/network-tester/Makefile index 6392da48f67..f1de44bc9d6 100644 --- a/test/images/network-tester/Makefile +++ b/test/images/network-tester/Makefile @@ -12,13 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -TAG = 1.6 +TAG = 1.7 PREFIX = gcr.io/google_containers all: push webserver: webserver.go - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-w' ./webserver.go + CGO_ENABLED=0 GOOS=linux godep go build -a -installsuffix cgo -ldflags '-w' ./webserver.go container: image diff --git a/test/images/network-tester/webserver.go b/test/images/network-tester/webserver.go index 67482a7ad0b..bc00b5cdeea 100644 --- a/test/images/network-tester/webserver.go +++ b/test/images/network-tester/webserver.go @@ -90,7 +90,8 @@ func (s *State) serveStatus(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "running") return } - s.Logf("Declaring failure for %s/%s with %d sent and %d received and %d peers", *namespace, *service, len(s.Sent), len(s.Received), *peerCount) + // Logf can't be called while holding the lock, so defer using a goroutine + go s.Logf("Declaring failure for %s/%s with %d sent and %d received and %d peers", *namespace, *service, len(s.Sent), len(s.Received), *peerCount) fmt.Fprintf(w, "fail") }