From a707057ae22a34866a0ab7c048f78db1fd6b5913 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz <welzwo@gmail.com> Date: Tue, 4 Feb 2020 10:35:12 +0000 Subject: [PATCH] Fix: Write to closed neigbhor (#229) * fix close order * return closed error * fix tests * do not close send queue explicitly --- packages/gossip/neighbor.go | 3 +-- packages/gossip/neighbor_test.go | 13 ------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/packages/gossip/neighbor.go b/packages/gossip/neighbor.go index 6674275b..8cfcee90 100644 --- a/packages/gossip/neighbor.go +++ b/packages/gossip/neighbor.go @@ -84,7 +84,6 @@ func (n *Neighbor) IsOutbound() bool { func (n *Neighbor) disconnect() (err error) { n.disconnectOnce.Do(func() { close(n.closing) - close(n.queue) err = n.BufferedConnection.Close() }) return @@ -140,7 +139,7 @@ func (n *Neighbor) readLoop() { func (n *Neighbor) Write(b []byte) (int, error) { l := len(b) if l > maxPacketSize { - n.log.Errorw("message too large", "len", l, "max", maxPacketSize) + n.log.Panicw("message too large", "len", l, "max", maxPacketSize) } // add to queue diff --git a/packages/gossip/neighbor_test.go b/packages/gossip/neighbor_test.go index 72a0f895..fd1e0fc7 100644 --- a/packages/gossip/neighbor_test.go +++ b/packages/gossip/neighbor_test.go @@ -35,19 +35,6 @@ func TestNeighborCloseTwice(t *testing.T) { require.NoError(t, n.Close()) } -func TestNeighborWriteToClosed(t *testing.T) { - a, _, teardown := newPipe() - defer teardown() - - n := newTestNeighbor("A", a) - n.Listen() - require.NoError(t, n.Close()) - - assert.Panics(t, func() { - _, _ = n.Write(testData) - }) -} - func TestNeighborWrite(t *testing.T) { a, b, teardown := newPipe() defer teardown() -- GitLab