From d02a39739be4850548c8c157660cb952b83e2ac7 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Mon, 15 Mar 2021 10:15:48 +0000 Subject: [PATCH] server: try avoid the "address already in use" error (#8842) Replace defer l.Close() with l.Close() to shutdown the listener as fast as possible to avoid the "bind: address already in use" error that so often occurs in CI build. From: https://github.com/phayes/freeport/pull/8 Reference: #6671 Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com> --- server/test_helpers.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/server/test_helpers.go b/server/test_helpers.go index 0bc6bac801..bb19df695d 100644 --- a/server/test_helpers.go +++ b/server/test_helpers.go @@ -13,16 +13,10 @@ func FreeTCPAddr() (addr, port string, err error) { return "", "", err } - closer := func() { - err := l.Close() - if err != nil { - // TODO: Handle with #870 - panic(err) - } + if err := l.Close(); err != nil { + return "", "", fmt.Errorf("couldn't close the listener: %w", err) } - defer closer() - portI := l.Addr().(*net.TCPAddr).Port port = fmt.Sprintf("%d", portI) addr = fmt.Sprintf("tcp://0.0.0.0:%s", port)