From 8ceaaf41045c2d65797ffcf5c61742b99c874f54 Mon Sep 17 00:00:00 2001 From: algonautshant Date: Tue, 23 May 2023 13:54:26 -0400 Subject: [PATCH] tag pos log after network shutdown, terminate goroutine not closed after network stop, use reg log instead of test log --- network/requestTracker_test.go | 4 ++-- network/wsNetwork.go | 12 ++++++++---- network/wsPeer.go | 6 +++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/network/requestTracker_test.go b/network/requestTracker_test.go index 8998b41f77..e76b954abd 100644 --- a/network/requestTracker_test.go +++ b/network/requestTracker_test.go @@ -78,8 +78,8 @@ func TestRateLimiting(t *testing.T) { if defaultConfig.ConnectionsRateLimitingCount == 0 || defaultConfig.ConnectionsRateLimitingWindowSeconds == 0 { t.Skip() } - log := logging.TestingLog(t) - log.SetLevel(logging.Level(defaultConfig.BaseLoggerDebugLevel)) + log := logging.Base() + log.SetLevel(logging.Error) testConfig := defaultConfig // This test is conducted locally, so we want to treat all hosts the same for counting incoming requests. testConfig.DisableLocalhostConnectionRateLimit = false diff --git a/network/wsNetwork.go b/network/wsNetwork.go index 9196553524..e18fb32bf2 100644 --- a/network/wsNetwork.go +++ b/network/wsNetwork.go @@ -964,6 +964,7 @@ func (wn *WebsocketNetwork) Stop() { wn.messagesOfInterestMu.Lock() defer wn.messagesOfInterestMu.Unlock() + close(wn.messagesOfInterestRefresh) wn.messagesOfInterestEncoded = false wn.messagesOfInterestEnc = nil wn.messagesOfInterest = nil @@ -2414,7 +2415,7 @@ func (wn *WebsocketNetwork) removePeer(peer *wsPeer, reason disconnectReason) { if peer.outgoing && peer.peerMessageDelay > 0 { logEntry = logEntry.With("messageDelay", peer.peerMessageDelay) } - logEntry.Infof("Peer %s disconnected: %s", peer.rootURL, reason) + logEntry.Infof("Peer %s disconnected: %s", peer.rootURL, reason) //xx peerAddr := peer.OriginAddress() // we might be able to get addr out of conn, or it might be closed if peerAddr == "" && peer.conn != nil { @@ -2591,7 +2592,7 @@ func (wn *WebsocketNetwork) updateMessagesOfInterestEnc() { atomic.AddUint32(&wn.messagesOfInterestGeneration, 1) var peers []*wsPeer peers, _ = wn.peerSnapshot(peers) - wn.log.Infof("updateMessagesOfInterestEnc maybe sending messagesOfInterest %v", wn.messagesOfInterest) + wn.log.Infof("updateMessagesOfInterestEnc maybe sending messagesOfInterest %v", wn.messagesOfInterest) //xx for _, peer := range peers { wn.maybeSendMessagesOfInterest(peer, wn.messagesOfInterestEnc) } @@ -2599,7 +2600,10 @@ func (wn *WebsocketNetwork) updateMessagesOfInterestEnc() { func (wn *WebsocketNetwork) postMessagesOfInterestThread() { for { - <-wn.messagesOfInterestRefresh + _, open := <-wn.messagesOfInterestRefresh + if !open { + return + } // if we're not a relay, and not participating, we don't need txn pool wantTXGossip := wn.nodeInfo.IsParticipating() if wantTXGossip && (wn.wantTXGossip != wantTXGossipYes) { @@ -2607,7 +2611,7 @@ func (wn *WebsocketNetwork) postMessagesOfInterestThread() { wn.RegisterMessageInterest(protocol.TxnTag) atomic.StoreUint32(&wn.wantTXGossip, wantTXGossipYes) } else if !wantTXGossip && (wn.wantTXGossip != wantTXGossipNo) { - wn.log.Infof("postMessagesOfInterestThread: disabling TX gossip") + wn.log.Infof("postMessagesOfInterestThread: disabling TX gossip") //xx wn.DeregisterMessageInterest(protocol.TxnTag) atomic.StoreUint32(&wn.wantTXGossip, wantTXGossipNo) } diff --git a/network/wsPeer.go b/network/wsPeer.go index accd06cf9e..b55f0e3348 100644 --- a/network/wsPeer.go +++ b/network/wsPeer.go @@ -456,7 +456,7 @@ func (wp *wsPeer) reportReadErr(err error) { // only report error if we haven't already closed the peer if atomic.LoadInt32(&wp.didInnerClose) == 0 { _, _, line, _ := runtime.Caller(1) - wp.net.log.Warnf("peer[%s] line=%d read err: %s", wp.conn.RemoteAddr().String(), line, err) + wp.net.log.Warnf("peer[%s] line=%d read err: %s", wp.conn.RemoteAddr().String(), line, err) //xx networkConnectionsDroppedTotal.Inc(map[string]string{"reason": "reader err"}) } } @@ -732,7 +732,7 @@ func (wp *wsPeer) writeLoopSendMsg(msg sendMessage) disconnectReason { err := wp.conn.WriteMessage(websocket.BinaryMessage, msg.data) if err != nil { if atomic.LoadInt32(&wp.didInnerClose) == 0 { - wp.net.log.Warn("peer write error ", err) + wp.net.log.Warn("peer write error ", err) //xx networkConnectionsDroppedTotal.Inc(map[string]string{"reason": "write err"}) } return disconnectWriteError @@ -883,7 +883,7 @@ func (wp *wsPeer) Close(deadline time.Time) { close(wp.closing) err := wp.conn.WriteControl(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""), deadline) if err != nil { - wp.net.log.Infof("failed to write CloseMessage to connection for %s", wp.conn.RemoteAddr().String()) + wp.net.log.Infof("failed to write CloseMessage to connection for %s", wp.conn.RemoteAddr().String()) //xx } err = wp.conn.CloseWithoutFlush() if err != nil {