diff --git a/p2p/conn/connection.go b/p2p/conn/connection.go index 94856134..5c7f19cf 100644 --- a/p2p/conn/connection.go +++ b/p2p/conn/connection.go @@ -545,9 +545,7 @@ FOR_LOOP: // not goroutine-safe func (c *MConnection) stopPongTimer() { if c.pongTimer != nil { - if !c.pongTimer.Stop() { - <-c.pongTimer.C - } + _ = c.pongTimer.Stop() c.pongTimer = nil } } diff --git a/p2p/conn/connection_test.go b/p2p/conn/connection_test.go index a927d695..ade8e8e9 100644 --- a/p2p/conn/connection_test.go +++ b/p2p/conn/connection_test.go @@ -6,9 +6,11 @@ import ( "testing" "time" + "github.com/fortytw2/leaktest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/go-amino" + + amino "github.com/tendermint/go-amino" "github.com/tendermint/tmlibs/log" ) @@ -242,7 +244,11 @@ func TestMConnectionMultiplePings(t *testing.T) { } func TestMConnectionPingPongs(t *testing.T) { + // check that we are not leaking any go-routines + defer leaktest.CheckTimeout(t, 10*time.Second)() + server, client := net.Pipe() + defer server.Close() defer client.Close()