diff --git a/abci/client/creators.go b/abci/client/creators.go index c7220e928..a1b65f5fe 100644 --- a/abci/client/creators.go +++ b/abci/client/creators.go @@ -16,8 +16,8 @@ type Creator func(log.Logger) (Client, error) func NewLocalCreator(app types.Application) Creator { mtx := new(sync.Mutex) - return func(_ log.Logger) (Client, error) { - return NewLocalClient(mtx, app), nil + return func(logger log.Logger) (Client, error) { + return NewLocalClient(logger, mtx, app), nil } } diff --git a/abci/client/local_client.go b/abci/client/local_client.go index 8f2fab4e7..86e0e1d4c 100644 --- a/abci/client/local_client.go +++ b/abci/client/local_client.go @@ -5,6 +5,7 @@ import ( "sync" types "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/service" ) @@ -26,7 +27,7 @@ var _ Client = (*localClient)(nil) // methods of the given app. // // Both Async and Sync methods ignore the given context.Context parameter. -func NewLocalClient(mtx *sync.Mutex, app types.Application) Client { +func NewLocalClient(logger log.Logger, mtx *sync.Mutex, app types.Application) Client { if mtx == nil { mtx = new(sync.Mutex) } @@ -34,7 +35,7 @@ func NewLocalClient(mtx *sync.Mutex, app types.Application) Client { mtx: mtx, Application: app, } - cli.BaseService = *service.NewBaseService(nil, "localClient", cli) + cli.BaseService = *service.NewBaseService(logger, "localClient", cli) return cli } diff --git a/internal/blocksync/pool.go b/internal/blocksync/pool.go index a06c841fc..88d9acef6 100644 --- a/internal/blocksync/pool.go +++ b/internal/blocksync/pool.go @@ -418,7 +418,7 @@ func (pool *BlockPool) makeNextRequester(ctx context.Context) { return } - request := newBPRequester(pool, nextHeight) + request := newBPRequester(pool.logger, pool, nextHeight) pool.requesters[nextHeight] = request atomic.AddInt32(&pool.numPending, 1) @@ -565,7 +565,7 @@ type bpRequester struct { block *types.Block } -func newBPRequester(pool *BlockPool, height int64) *bpRequester { +func newBPRequester(logger log.Logger, pool *BlockPool, height int64) *bpRequester { bpr := &bpRequester{ logger: pool.logger, pool: pool, @@ -576,7 +576,7 @@ func newBPRequester(pool *BlockPool, height int64) *bpRequester { peerID: "", block: nil, } - bpr.BaseService = *service.NewBaseService(nil, "bpRequester", bpr) + bpr.BaseService = *service.NewBaseService(logger, "bpRequester", bpr) return bpr } diff --git a/internal/consensus/byzantine_test.go b/internal/consensus/byzantine_test.go index a14af999b..e80b79c84 100644 --- a/internal/consensus/byzantine_test.go +++ b/internal/consensus/byzantine_test.go @@ -68,8 +68,8 @@ func TestByzantinePrevoteEquivocation(t *testing.T) { // one for mempool, one for consensus mtx := new(sync.Mutex) - proxyAppConnMem := abciclient.NewLocalClient(mtx, app) - proxyAppConnCon := abciclient.NewLocalClient(mtx, app) + proxyAppConnMem := abciclient.NewLocalClient(logger, mtx, app) + proxyAppConnCon := abciclient.NewLocalClient(logger, mtx, app) // Make Mempool mempool := mempool.NewTxMempool( diff --git a/internal/consensus/common_test.go b/internal/consensus/common_test.go index b8548cdc8..0a61c95a3 100644 --- a/internal/consensus/common_test.go +++ b/internal/consensus/common_test.go @@ -440,8 +440,8 @@ func newStateWithConfigAndBlockStore( ) *State { // one for mempool, one for consensus mtx := new(sync.Mutex) - proxyAppConnMem := abciclient.NewLocalClient(mtx, app) - proxyAppConnCon := abciclient.NewLocalClient(mtx, app) + proxyAppConnMem := abciclient.NewLocalClient(logger, mtx, app) + proxyAppConnCon := abciclient.NewLocalClient(logger, mtx, app) // Make Mempool diff --git a/internal/consensus/reactor_test.go b/internal/consensus/reactor_test.go index ff218cb5f..8b7b7eb51 100644 --- a/internal/consensus/reactor_test.go +++ b/internal/consensus/reactor_test.go @@ -392,8 +392,8 @@ func TestReactorWithEvidence(t *testing.T) { // one for mempool, one for consensus mtx := new(sync.Mutex) - proxyAppConnMem := abciclient.NewLocalClient(mtx, app) - proxyAppConnCon := abciclient.NewLocalClient(mtx, app) + proxyAppConnMem := abciclient.NewLocalClient(logger, mtx, app) + proxyAppConnCon := abciclient.NewLocalClient(logger, mtx, app) mempool := mempool.NewTxMempool( log.TestingLogger().With("module", "mempool"), diff --git a/internal/consensus/state.go b/internal/consensus/state.go index f45088352..e87d058eb 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -178,7 +178,7 @@ func NewState( doWALCatchup: true, wal: nilWAL{}, evpool: evpool, - evsw: tmevents.NewEventSwitch(), + evsw: tmevents.NewEventSwitch(logger), metrics: NopMetrics(), onStopCh: make(chan *cstypes.RoundState), } diff --git a/internal/statesync/stateprovider.go b/internal/statesync/stateprovider.go index b798eb9ad..dc54ee3e2 100644 --- a/internal/statesync/stateprovider.go +++ b/internal/statesync/stateprovider.go @@ -44,6 +44,7 @@ type stateProviderRPC struct { lc *light.Client initialHeight int64 providers map[lightprovider.Provider]string + logger log.Logger } // NewRPCStateProvider creates a new StateProvider using a light client and RPC clients. @@ -79,6 +80,7 @@ func NewRPCStateProvider( return nil, err } return &stateProviderRPC{ + logger: logger, lc: lc, initialHeight: initialHeight, providers: providerRemotes, @@ -176,7 +178,7 @@ func (s *stateProviderRPC) State(ctx context.Context, height uint64) (sm.State, if err != nil { return sm.State{}, fmt.Errorf("unable to create RPC client: %w", err) } - rpcclient := lightrpc.NewClient(primaryRPC, s.lc) + rpcclient := lightrpc.NewClient(s.logger, primaryRPC, s.lc) result, err := rpcclient.ConsensusParams(ctx, ¤tLightBlock.Height) if err != nil { return sm.State{}, fmt.Errorf("unable to fetch consensus parameters for height %v: %w", diff --git a/libs/events/event_cache_test.go b/libs/events/event_cache_test.go index 13ab341f6..358e53a7b 100644 --- a/libs/events/event_cache_test.go +++ b/libs/events/event_cache_test.go @@ -6,13 +6,14 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/tendermint/tendermint/libs/log" ) func TestEventCache_Flush(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) err := evsw.Start(ctx) require.NoError(t, err) diff --git a/libs/events/events.go b/libs/events/events.go index b5b6f76df..f97dfb1a1 100644 --- a/libs/events/events.go +++ b/libs/events/events.go @@ -6,6 +6,7 @@ import ( "fmt" "sync" + "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/service" ) @@ -61,12 +62,12 @@ type eventSwitch struct { listeners map[string]*eventListener } -func NewEventSwitch() EventSwitch { +func NewEventSwitch(logger log.Logger) EventSwitch { evsw := &eventSwitch{ eventCells: make(map[string]*eventCell), listeners: make(map[string]*eventListener), } - evsw.BaseService = *service.NewBaseService(nil, "EventSwitch", evsw) + evsw.BaseService = *service.NewBaseService(logger, "EventSwitch", evsw) return evsw } diff --git a/libs/events/events_test.go b/libs/events/events_test.go index db9385ec3..5ddf8d93d 100644 --- a/libs/events/events_test.go +++ b/libs/events/events_test.go @@ -9,6 +9,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/rand" ) @@ -18,7 +19,7 @@ func TestAddListenerForEventFireOnce(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -47,7 +48,7 @@ func TestAddListenerForEventFireMany(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -83,7 +84,7 @@ func TestAddListenerForDifferentEvents(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -145,7 +146,7 @@ func TestAddDifferentListenerForDifferentEvents(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -235,7 +236,7 @@ func TestAddAndRemoveListenerConcurrency(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -284,7 +285,7 @@ func TestAddAndRemoveListener(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -340,7 +341,7 @@ func TestAddAndRemoveListener(t *testing.T) { func TestRemoveListener(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) @@ -397,7 +398,7 @@ func TestRemoveListener(t *testing.T) { func TestRemoveListenersAsync(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - evsw := NewEventSwitch() + evsw := NewEventSwitch(log.TestingLogger()) require.NoError(t, evsw.Start(ctx)) t.Cleanup(evsw.Wait) diff --git a/libs/service/service.go b/libs/service/service.go index 81c885ae5..d2594c3e0 100644 --- a/libs/service/service.go +++ b/libs/service/service.go @@ -104,10 +104,6 @@ type BaseService struct { // NewBaseService creates a new BaseService. func NewBaseService(logger log.Logger, name string, impl Implementation) *BaseService { - if logger == nil { - logger = log.NewNopLogger() - } - return &BaseService{ logger: logger, name: name, diff --git a/libs/service/service_test.go b/libs/service/service_test.go index 9630d358b..254491cae 100644 --- a/libs/service/service_test.go +++ b/libs/service/service_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/stretchr/testify/require" + "github.com/tendermint/tendermint/libs/log" ) type testService struct { @@ -22,7 +23,7 @@ func TestBaseServiceWait(t *testing.T) { defer cancel() ts := &testService{} - ts.BaseService = *NewBaseService(nil, "TestService", ts) + ts.BaseService = *NewBaseService(log.TestingLogger(), "TestService", ts) err := ts.Start(ctx) require.NoError(t, err) diff --git a/light/proxy/proxy.go b/light/proxy/proxy.go index 9119d2f2a..60d542b7c 100644 --- a/light/proxy/proxy.go +++ b/light/proxy/proxy.go @@ -40,7 +40,7 @@ func NewProxy( return &Proxy{ Addr: listenAddr, Config: config, - Client: lrpc.NewClient(rpcClient, lightClient, opts...), + Client: lrpc.NewClient(logger, rpcClient, lightClient, opts...), Logger: logger, }, nil } diff --git a/light/rpc/client.go b/light/rpc/client.go index 7496d60a1..08ef27a6d 100644 --- a/light/rpc/client.go +++ b/light/rpc/client.go @@ -13,6 +13,7 @@ import ( abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/crypto/merkle" tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/tendermint/tendermint/libs/log" tmmath "github.com/tendermint/tendermint/libs/math" service "github.com/tendermint/tendermint/libs/service" rpcclient "github.com/tendermint/tendermint/rpc/client" @@ -88,14 +89,14 @@ func DefaultMerkleKeyPathFn() KeyPathFunc { } // NewClient returns a new client. -func NewClient(next rpcclient.Client, lc LightClient, opts ...Option) *Client { +func NewClient(logger log.Logger, next rpcclient.Client, lc LightClient, opts ...Option) *Client { c := &Client{ next: next, lc: lc, prt: merkle.DefaultProofRuntime(), quitCh: make(chan struct{}), } - c.BaseService = *service.NewBaseService(nil, "Client", c) + c.BaseService = *service.NewBaseService(logger, "Client", c) for _, o := range opts { o(c) }