diff --git a/agreement/actions.go b/agreement/actions.go index 141a269010..77742affcb 100644 --- a/agreement/actions.go +++ b/agreement/actions.go @@ -20,7 +20,6 @@ import ( "context" "fmt" - "github.com/algorand/go-algorand/logging" "github.com/algorand/go-algorand/logging/logspec" "github.com/algorand/go-algorand/logging/telemetryspec" "github.com/algorand/go-algorand/protocol" @@ -312,7 +311,7 @@ func (a pseudonodeAction) do(ctx context.Context, s *Service) { case errPseudonodeNoProposals: // no participation keys, do nothing. default: - logging.Base().Errorf("pseudonode.MakeProposals call failed %v", err) + s.log.Errorf("pseudonode.MakeProposals call failed %v", err) } case repropose: logEvent := logspec.AgreementEvent{ @@ -336,7 +335,7 @@ func (a pseudonodeAction) do(ctx context.Context, s *Service) { // do nothing default: // otherwise, - logging.Base().Errorf("pseudonode.MakeVotes call failed for reproposal(%v) %v", a.T, err) + s.log.Errorf("pseudonode.MakeVotes call failed for reproposal(%v) %v", a.T, err) } case attest: logEvent := logspec.AgreementEvent{ @@ -360,7 +359,7 @@ func (a pseudonodeAction) do(ctx context.Context, s *Service) { s.demux.prioritize(voteEvents) default: // otherwise, - logging.Base().Errorf("pseudonode.MakeVotes call failed(%v) %v", a.T, err) + s.log.Errorf("pseudonode.MakeVotes call failed(%v) %v", a.T, err) fallthrough // just so that we would close the channel. case errPseudonodeNoVotes: // do nothing; we're closing the channel just to avoid leaving open channels, but it's not diff --git a/agreement/actor.go b/agreement/actor.go index eb7688fa6f..c771604e1d 100644 --- a/agreement/actor.go +++ b/agreement/actor.go @@ -18,8 +18,6 @@ package agreement import ( "fmt" - - "github.com/algorand/go-algorand/logging" ) // An actor is a state machine which accepts events and returns sequences of actions. @@ -89,12 +87,12 @@ func (l checkedActor) handle(r routerHandle, in event) []action { for _, pre := range cerrpre { if pre != nil { - logging.Base().Warnf("precondition call violation: %v", pre) + r.t.log.Warnf("precondition call violation: %v", pre) } } for _, post := range cerrpost { if post != nil { - logging.Base().Warnf("postcondition call violation: %v", post) + r.t.log.Warnf("postcondition call violation: %v", post) } } // for _, pre := range terrpre { diff --git a/agreement/agreementtest/simulate.go b/agreement/agreementtest/simulate.go index 009d3772f3..c08ece3679 100644 --- a/agreement/agreementtest/simulate.go +++ b/agreement/agreementtest/simulate.go @@ -189,7 +189,7 @@ func Simulate(dbname string, n basics.Round, roundDeadline time.Duration, ledger Logger: log, Accessor: accessor, Clock: stopwatch, - Network: gossip.WrapNetwork(new(blackhole)), + Network: gossip.WrapNetwork(new(blackhole), log), Ledger: ledger, BlockFactory: proposalFactory, BlockValidator: proposalValidator, diff --git a/agreement/fuzzer/fuzzer_test.go b/agreement/fuzzer/fuzzer_test.go index b6b52f44c3..fee40b9c48 100644 --- a/agreement/fuzzer/fuzzer_test.go +++ b/agreement/fuzzer/fuzzer_test.go @@ -127,10 +127,11 @@ func (n *Fuzzer) initAgreementNode(nodeID int, filters ...NetworkFilterFactory) return false } + logger := n.log.WithFields(logging.Fields{"Source": "service-" + strconv.Itoa(nodeID)}) n.agreementParams[nodeID] = agreement.Parameters{ - Logger: n.log.WithFields(logging.Fields{"Source": "service-" + strconv.Itoa(nodeID)}), + Logger: logger, Ledger: n.ledgers[nodeID], - Network: gossip.WrapNetwork(n.facades[nodeID]), + Network: gossip.WrapNetwork(n.facades[nodeID], logger), KeyManager: simpleKeyManager(n.accounts[nodeID : nodeID+1]), BlockValidator: n.blockValidator, BlockFactory: testBlockFactory{Owner: nodeID}, @@ -593,7 +594,7 @@ func (n *Fuzzer) CrashNode(nodeID int) { n.facades[nodeID].ClearHandlers() n.ledgers[nodeID].ClearNotifications() - n.agreementParams[nodeID].Network = gossip.WrapNetwork(n.facades[nodeID]) + n.agreementParams[nodeID].Network = gossip.WrapNetwork(n.facades[nodeID], n.log) n.agreements[nodeID] = agreement.MakeService(n.agreementParams[nodeID]) cadaverFilename := fmt.Sprintf("%v-%v", n.networkName, nodeID) diff --git a/agreement/gossip/network.go b/agreement/gossip/network.go index 5e99c1d75a..b69fc4454e 100644 --- a/agreement/gossip/network.go +++ b/agreement/gossip/network.go @@ -49,10 +49,11 @@ type networkImpl struct { bundleCh chan agreement.Message net network.GossipNode + log logging.Logger } // WrapNetwork adapts a network.GossipNode into an agreement.Network. -func WrapNetwork(net network.GossipNode) agreement.Network { +func WrapNetwork(net network.GossipNode, log logging.Logger) agreement.Network { i := new(networkImpl) i.voteCh = make(chan agreement.Message, voteBufferSize) @@ -60,6 +61,7 @@ func WrapNetwork(net network.GossipNode) agreement.Network { i.bundleCh = make(chan agreement.Message, bundleBufferSize) i.net = net + i.log = log handlers := []network.TaggedMessageHandler{ {Tag: protocol.AgreementVoteTag, MessageHandler: network.HandlerFunc(i.processVoteMessage)}, @@ -116,7 +118,7 @@ func (i *networkImpl) Messages(t protocol.Tag) <-chan agreement.Message { case protocol.VoteBundleTag: return i.bundleCh default: - logging.Base().Panicf("bad tag! %v", t) + i.log.Panicf("bad tag! %v", t) return nil } } @@ -124,7 +126,7 @@ func (i *networkImpl) Messages(t protocol.Tag) <-chan agreement.Message { func (i *networkImpl) Broadcast(t protocol.Tag, data []byte) (err error) { err = i.net.Broadcast(context.Background(), t, data, false, nil) if err != nil { - logging.Base().Infof("agreement: could not broadcast message with tag %v: %v", t, err) + i.log.Infof("agreement: could not broadcast message with tag %v: %v", t, err) } return } @@ -134,12 +136,12 @@ func (i *networkImpl) Relay(h agreement.MessageHandle, t protocol.Tag, data []by if metadata == nil { // synthentic loopback err = i.net.Broadcast(context.Background(), t, data, false, nil) if err != nil { - logging.Base().Infof("agreement: could not (pseudo)relay message with tag %v: %v", t, err) + i.log.Infof("agreement: could not (pseudo)relay message with tag %v: %v", t, err) } } else { err = i.net.Relay(context.Background(), t, data, false, metadata.raw.Sender) if err != nil { - logging.Base().Infof("agreement: could not relay message from %v with tag %v: %v", metadata.raw.Sender, t, err) + i.log.Infof("agreement: could not relay message from %v with tag %v: %v", metadata.raw.Sender, t, err) } } return diff --git a/agreement/gossip/networkFull_test.go b/agreement/gossip/networkFull_test.go index 52d503d2ad..b888ee1e50 100644 --- a/agreement/gossip/networkFull_test.go +++ b/agreement/gossip/networkFull_test.go @@ -84,7 +84,7 @@ func spinNetwork(t *testing.T, nodesCount int) ([]*networkImpl, []*messageCounte networkImpls := []*networkImpl{} msgCounters := []*messageCounter{} for _, gossipNode := range gossipNodes { - networkImpl := WrapNetwork(gossipNode).(*networkImpl) + networkImpl := WrapNetwork(gossipNode, log).(*networkImpl) networkImpls = append(networkImpls, networkImpl) msgCounter := startMessageCounter(networkImpl) msgCounters = append(msgCounters, msgCounter) diff --git a/agreement/gossip/network_test.go b/agreement/gossip/network_test.go index 4a849c6a08..40105fe0b4 100644 --- a/agreement/gossip/network_test.go +++ b/agreement/gossip/network_test.go @@ -28,6 +28,7 @@ import ( "github.com/algorand/go-deadlock" + "github.com/algorand/go-algorand/logging" "github.com/algorand/go-algorand/network" "github.com/algorand/go-algorand/protocol" ) @@ -323,7 +324,7 @@ func makewhiteholeNetwork(domain *whiteholeDomain) *whiteholeNetwork { func spinNetworkImpl(domain *whiteholeDomain) (whiteholeNet *whiteholeNetwork, counter *messageCounter) { whiteholeNet = makewhiteholeNetwork(domain) - netImpl := WrapNetwork(whiteholeNet).(*networkImpl) + netImpl := WrapNetwork(whiteholeNet, logging.Base()).(*networkImpl) counter = startMessageCounter(netImpl) whiteholeNet.Start() return diff --git a/node/node.go b/node/node.go index 0cd8fc26f6..083c9fe6ca 100644 --- a/node/node.go +++ b/node/node.go @@ -237,7 +237,7 @@ func MakeFull(log logging.Logger, rootDir string, cfg config.Local, phonebookDir Accessor: crashAccess, Clock: timers.MakeMonotonicClock(time.Now()), Local: node.config, - Network: gossip.WrapNetwork(node.net), + Network: gossip.WrapNetwork(node.net, log), Ledger: agreementLedger, BlockFactory: blockFactory, BlockValidator: blockValidator, @@ -556,7 +556,7 @@ func (node *AlgorandFullNode) Status() (s StatusReport, err error) { s.CatchupTime = node.syncer.SynchronizingTime() s.HasSyncedSinceStartup = node.hasSyncedSinceStartup s.StoppedAtUnsupportedRound = s.LastRound+1 == s.NextVersionRound && !s.NextVersionSupported - + return }