lint: enable errcheck (#5336)

## Description

Enable errcheck linter throughout the codebase

Closes: #5059
This commit is contained in:
Marko
2020-09-07 17:03:18 +02:00
committed by GitHub
parent 3359e0bf2f
commit 0ed8dba991
39 changed files with 346 additions and 137 deletions

View File

@@ -35,7 +35,11 @@ func TestHeaderEvents(t *testing.T) {
// if so, then we start it, listen, and stop it.
err := c.Start()
require.Nil(t, err, "%d: %+v", i, err)
defer c.Stop()
t.Cleanup(func() {
if err := c.Stop(); err != nil {
t.Error(err)
}
})
}
evtTyp := types.EventNewBlockHeader
@@ -59,14 +63,22 @@ func TestBlockEvents(t *testing.T) {
// if so, then we start it, listen, and stop it.
err := c.Start()
require.Nil(t, err)
defer c.Stop()
t.Cleanup(func() {
if err := c.Stop(); err != nil {
t.Error(err)
}
})
}
const subscriber = "TestBlockEvents"
eventCh, err := c.Subscribe(context.Background(), subscriber, types.QueryForEvent(types.EventNewBlock).String())
require.NoError(t, err)
defer c.UnsubscribeAll(context.Background(), subscriber)
t.Cleanup(func() {
if err := c.UnsubscribeAll(context.Background(), subscriber); err != nil {
t.Error(err)
}
})
var firstBlockHeight int64
for i := int64(0); i < 3; i++ {
@@ -99,7 +111,11 @@ func testTxEventsSent(t *testing.T, broadcastMethod string) {
// if so, then we start it, listen, and stop it.
err := c.Start()
require.Nil(t, err)
defer c.Stop()
t.Cleanup(func() {
if err := c.Stop(); err != nil {
t.Error(err)
}
})
}
// make the tx

View File

@@ -68,7 +68,11 @@ func WaitForOneEvent(c EventsClient, evtTyp string, timeout time.Duration) (type
return nil, fmt.Errorf("failed to subscribe: %w", err)
}
// make sure to unregister after the test is over
defer c.UnsubscribeAll(ctx, subscriber)
defer func() {
if deferErr := c.UnsubscribeAll(ctx, subscriber); deferErr != nil {
panic(err)
}
}()
select {
case event := <-eventCh:

View File

@@ -50,7 +50,9 @@ type Local struct {
// don't run in parallel, or try to simulate an entire network in
// one process...
func New(node *nm.Node) *Local {
node.ConfigureRPC()
if err := node.ConfigureRPC(); err != nil {
node.Logger.Error("Error configuring RPC", "err", err)
}
return &Local{
EventBus: node.EventBus(),
Logger: log.NewNopLogger(),

View File

@@ -71,7 +71,11 @@ func BroadcastTxCommit(ctx *rpctypes.Context, tx types.Tx) (*ctypes.ResultBroadc
env.Logger.Error("Error on broadcast_tx_commit", "err", err)
return nil, err
}
defer env.EventBus.Unsubscribe(context.Background(), subscriber, q)
defer func() {
if err := env.EventBus.Unsubscribe(context.Background(), subscriber, q); err != nil {
env.Logger.Error("Error unsubscribing from eventBus", "err", err)
}
}()
// Broadcast tx and wait for CheckTx result
checkTxResCh := make(chan *abci.Response, 1)

View File

@@ -125,7 +125,11 @@ func setup() {
if err != nil {
panic(err)
}
go server.Serve(listener1, mux, tcpLogger, config)
go func() {
if err := server.Serve(listener1, mux, tcpLogger, config); err != nil {
panic(err)
}
}()
unixLogger := logger.With("socket", "unix")
mux2 := http.NewServeMux()
@@ -137,7 +141,11 @@ func setup() {
if err != nil {
panic(err)
}
go server.Serve(listener2, mux2, unixLogger, config)
go func() {
if err := server.Serve(listener2, mux2, unixLogger, config); err != nil {
panic(err)
}
}()
// wait for servers to start
time.Sleep(time.Second * 2)

View File

@@ -85,7 +85,11 @@ func TestServeTLS(t *testing.T) {
fmt.Fprint(w, "some body")
})
go ServeTLS(ln, mux, "test.crt", "test.key", log.TestingLogger(), DefaultConfig())
go func() {
if err := ServeTLS(ln, mux, "test.crt", "test.key", log.TestingLogger(), DefaultConfig()); err != nil {
t.Log(err)
}
}()
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},

View File

@@ -306,7 +306,9 @@ func (wsc *wsConnection) readRoutine() {
err = fmt.Errorf("WSJSONRPC: %v", r)
}
wsc.Logger.Error("Panic in WSJSONRPC handler", "err", err, "stack", string(debug.Stack()))
wsc.WriteRPCResponse(writeCtx, types.RPCInternalError(types.JSONRPCIntID(-1), err))
if err := wsc.WriteRPCResponse(writeCtx, types.RPCInternalError(types.JSONRPCIntID(-1), err)); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
go wsc.readRoutine()
}
}()
@@ -332,7 +334,9 @@ func (wsc *wsConnection) readRoutine() {
} else {
wsc.Logger.Error("Failed to read request", "err", err)
}
wsc.Stop()
if err := wsc.Stop(); err != nil {
wsc.Logger.Error("Error closing websocket connection", "err", err)
}
close(wsc.readRoutineQuit)
return
}
@@ -341,7 +345,10 @@ func (wsc *wsConnection) readRoutine() {
var request types.RPCRequest
err = dec.Decode(&request)
if err != nil {
wsc.WriteRPCResponse(writeCtx, types.RPCParseError(fmt.Errorf("error unmarshaling request: %w", err)))
if err := wsc.WriteRPCResponse(writeCtx,
types.RPCParseError(fmt.Errorf("error unmarshaling request: %w", err))); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
continue
}
@@ -358,7 +365,9 @@ func (wsc *wsConnection) readRoutine() {
// Now, fetch the RPCFunc and execute it.
rpcFunc := wsc.funcMap[request.Method]
if rpcFunc == nil {
wsc.WriteRPCResponse(writeCtx, types.RPCMethodNotFoundError(request.ID))
if err := wsc.WriteRPCResponse(writeCtx, types.RPCMethodNotFoundError(request.ID)); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
continue
}
@@ -367,9 +376,11 @@ func (wsc *wsConnection) readRoutine() {
if len(request.Params) > 0 {
fnArgs, err := jsonParamsToArgs(rpcFunc, request.Params)
if err != nil {
wsc.WriteRPCResponse(writeCtx,
if err := wsc.WriteRPCResponse(writeCtx,
types.RPCInternalError(request.ID, fmt.Errorf("error converting json params to arguments: %w", err)),
)
); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
continue
}
args = append(args, fnArgs...)
@@ -382,11 +393,15 @@ func (wsc *wsConnection) readRoutine() {
result, err := unreflectResult(returns)
if err != nil {
wsc.WriteRPCResponse(writeCtx, types.RPCInternalError(request.ID, err))
if err := wsc.WriteRPCResponse(writeCtx, types.RPCInternalError(request.ID, err)); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
continue
}
wsc.WriteRPCResponse(writeCtx, types.NewRPCSuccessResponse(request.ID, result))
if err := wsc.WriteRPCResponse(writeCtx, types.NewRPCSuccessResponse(request.ID, result)); err != nil {
wsc.Logger.Error("Error writing RPC response", "err", err)
}
}
}
}
@@ -440,12 +455,12 @@ func (wsc *wsConnection) writeRoutine() {
wsc.Logger.Error("Can't get NextWriter", "err", err)
return
}
w.Write(jsonBytes)
w.Write(jsonBytes) //nolint:errcheck //ignore error
// Add queued messages to the current websocket message.
n := len(wsc.writeChan)
for i := 0; i < n; i++ {
w.Write(newline)
w.Write(newline) //nolint:errcheck //ignore error
msg = <-wsc.writeChan
jsonBytes, err = json.MarshalIndent(msg, "", " ")
@@ -453,7 +468,7 @@ func (wsc *wsConnection) writeRoutine() {
wsc.Logger.Error("Failed to marshal RPCResponse to JSON", "err", err)
continue
}
w.Write(jsonBytes)
w.Write(jsonBytes) //nolint:errcheck //ignore error
}
if err := w.Close(); err != nil {