Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit f47b419

Browse files
alarso16JonathanOppenheimerStephenButtolph
authored
sync: coreth PR #1203: style: enable errcheck linter (#1876)
Signed-off-by: Jonathan Oppenheimer <147infiniti@gmail.com> Signed-off-by: Jonathan Oppenheimer <jonathan.oppenheimer@avalabs.org> Co-authored-by: Jonathan Oppenheimer <jonathan.oppenheimer@avalabs.org> Co-authored-by: Stephen Buttolph <stephen@avalabs.org>
1 parent f18aa6f commit f47b419

File tree

17 files changed

+74
-34
lines changed

17 files changed

+74
-34
lines changed

.avalanche-golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ linters:
5555
- bodyclose
5656
- copyloopvar
5757
- depguard
58-
# - errcheck
58+
- errcheck
5959
- errorlint
6060
- forbidigo
6161
- goconst

core/fifo_cache.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ func (f *BufferFIFOCache[K, V]) Put(key K, val V) {
4444
f.l.Lock()
4545
defer f.l.Unlock()
4646

47-
f.buffer.Insert(key) // Insert will remove the oldest [K] if we are at the [limit]
47+
// Insert will remove the oldest [K] if we are at the [limit] -
48+
// remove always returns nil, so it is safe to ignore this error.
49+
_ = f.buffer.Insert(key)
4850
f.m[key] = val
4951
}
5052

core/state/trie_prefetcher_extra_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,9 @@ func addKVs(
178178
for i := 0; i < count/2; i++ {
179179
key := make([]byte, 32)
180180
value := make([]byte, 32)
181-
rand.Read(key)
182-
rand.Read(value)
181+
// rand.Read never returns an error
182+
_, _ = rand.Read(key)
183+
_, _ = rand.Read(value)
183184

184185
statedb.SetState(address, common.BytesToHash(key), common.BytesToHash(value))
185186
}

core/state_manager_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ func TestCappedMemoryTrieWriter(t *testing.T) {
5555
require.NoError(t, w.InsertTrie(block))
5656
require.Zero(t, m.LastDereference, "should not have dereferenced block on insert")
5757
require.Zero(t, m.LastCommit, "should not have committed block on insert")
58+
require.NoError(t, w.AcceptTrie(block))
5859

59-
w.AcceptTrie(block)
6060
if i <= tipBufferSize {
6161
require.Zero(t, m.LastDereference, "should not have dereferenced block on accept")
6262
} else {
@@ -70,7 +70,7 @@ func TestCappedMemoryTrieWriter(t *testing.T) {
7070
m.LastCommit = common.Hash{}
7171
}
7272

73-
w.RejectTrie(block)
73+
require.NoError(t, w.RejectTrie(block))
7474
require.Equal(t, block.Root(), m.LastDereference, "should have dereferenced block on reject")
7575
require.Zero(t, m.LastCommit, "should not have committed block on reject")
7676
m.LastDereference = common.Hash{}
@@ -94,12 +94,12 @@ func TestNoPruningTrieWriter(t *testing.T) {
9494
require.Zero(t, m.LastDereference, "should not have dereferenced block on insert")
9595
require.Zero(t, m.LastCommit, "should not have committed block on insert")
9696

97-
w.AcceptTrie(block)
97+
require.NoError(t, w.AcceptTrie(block))
9898
require.Zero(t, m.LastDereference, "should not have dereferenced block on accept")
9999
require.Equal(t, block.Root(), m.LastCommit, "should have committed block on accept")
100100
m.LastCommit = common.Hash{}
101101

102-
w.RejectTrie(block)
102+
require.NoError(t, w.RejectTrie(block))
103103
require.Equal(t, block.Root(), m.LastDereference, "should have dereferenced block on reject")
104104
require.Zero(t, m.LastCommit, "should not have committed block on reject")
105105
m.LastDereference = common.Hash{}

plugin/evm/message/codec.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func init() {
4040
// See https://github.com/ava-labs/coreth/pull/999
4141
c.SkipRegistrations(3)
4242

43-
Codec.RegisterCodec(Version, c)
43+
errs.Add(Codec.RegisterCodec(Version, c))
4444

4545
if errs.Errored() {
4646
panic(errs.Err)

plugin/evm/syncervm_test.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/ava-labs/avalanchego/snow/engine/enginetest"
2020
"github.com/ava-labs/avalanchego/snow/engine/snowman/block"
2121
"github.com/ava-labs/avalanchego/upgrade/upgradetest"
22+
"github.com/ava-labs/avalanchego/utils"
2223
"github.com/ava-labs/avalanchego/utils/set"
2324
"github.com/ava-labs/avalanchego/vms/evm/database"
2425
"github.com/ava-labs/avalanchego/vms/evm/predicate"
@@ -104,7 +105,7 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) {
104105
require.NoError(t, syncerVM.AppRequestFailed(t.Context(), nodeID, requestID, commonEng.ErrTimeout))
105106
require.NoError(t, syncerVM.Client.Shutdown())
106107
} else {
107-
syncerVM.AppResponse(t.Context(), nodeID, requestID, response)
108+
require.NoError(t, syncerVM.AppResponse(t.Context(), nodeID, requestID, response))
108109
}
109110
},
110111
expectedErr: context.Canceled,
@@ -118,13 +119,18 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) {
118119
test.responseIntercept = nil
119120
test.expectedErr = nil
120121

122+
var atomicErr utils.Atomic[error]
121123
syncDisabledVM := &VM{}
122124
appSender := &enginetest.Sender{T: t}
123125
appSender.SendAppGossipF = func(context.Context, commonEng.SendConfig, []byte) error { return nil }
124126
appSender.SendAppRequestF = func(ctx context.Context, nodeSet set.Set[ids.NodeID], requestID uint32, request []byte) error {
125127
nodeID, hasItem := nodeSet.Pop()
126128
require.True(t, hasItem, "expected nodeSet to contain at least 1 nodeID")
127-
go vmSetup.serverVM.AppRequest(ctx, nodeID, requestID, time.Now().Add(1*time.Second), request)
129+
go func() {
130+
if err := vmSetup.serverVM.AppRequest(ctx, nodeID, requestID, time.Now().Add(1*time.Second), request); err != nil {
131+
atomicErr.Set(err)
132+
}
133+
}()
128134
return nil
129135
}
130136
// Reset metrics to allow re-initialization
@@ -191,7 +197,11 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) {
191197
// override [serverVM]'s SendAppResponse function to trigger AppResponse on [syncerVM]
192198
vmSetup.serverAppSender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error {
193199
if test.responseIntercept == nil {
194-
go syncReEnabledVM.AppResponse(ctx, nodeID, requestID, response)
200+
go func() {
201+
if err := syncReEnabledVM.AppResponse(ctx, nodeID, requestID, response); err != nil {
202+
atomicErr.Set(err)
203+
}
204+
}()
195205
} else {
196206
go test.responseIntercept(syncReEnabledVM, nodeID, requestID, response)
197207
}
@@ -212,6 +222,7 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) {
212222

213223
vmSetup.syncerVM = syncReEnabledVM
214224
testSyncerVM(t, vmSetup, test)
225+
require.NoError(t, atomicErr.Get())
215226
}
216227

217228
func TestVMShutdownWhileSyncing(t *testing.T) {
@@ -311,15 +322,23 @@ func createSyncServerAndClientVMs(t *testing.T, test syncTest, numBlocks int) *s
311322
require.True(enabled)
312323

313324
// override [serverVM]'s SendAppResponse function to trigger AppResponse on [syncerVM]
325+
var atomicErr utils.Atomic[error]
314326
serverVM.appSender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error {
315327
if test.responseIntercept == nil {
316-
go syncerVM.vm.AppResponse(ctx, nodeID, requestID, response)
328+
go func() {
329+
if err := syncerVM.vm.AppResponse(ctx, nodeID, requestID, response); err != nil {
330+
atomicErr.Set(err)
331+
}
332+
}()
317333
} else {
318334
go test.responseIntercept(syncerVM.vm, nodeID, requestID, response)
319335
}
320336

321337
return nil
322338
}
339+
t.Cleanup(func() {
340+
require.NoError(atomicErr.Get())
341+
})
323342

324343
// connect peer to [syncerVM]
325344
require.NoError(

plugin/evm/vm.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,9 @@ func (vm *VM) Initialize(
498498

499499
// Add p2p warp message warpHandler
500500
warpHandler := acp118.NewCachedHandler(meteredCache, vm.warpBackend, vm.ctx.WarpSigner)
501-
vm.Network.AddHandler(p2p.SignatureRequestHandlerID, warpHandler)
501+
if err = vm.Network.AddHandler(p2p.SignatureRequestHandlerID, warpHandler); err != nil {
502+
return err
503+
}
502504

503505
vm.stateSyncDone = make(chan struct{})
504506

@@ -814,7 +816,9 @@ func (vm *VM) onNormalOperationsStarted() error {
814816

815817
// Initially sync the uptime tracker so that APIs expose recent data even if
816818
// called immediately after bootstrapping.
817-
vm.uptimeTracker.Sync(ctx)
819+
if err := vm.uptimeTracker.Sync(ctx); err != nil {
820+
return err
821+
}
818822

819823
vm.shutdownWg.Add(1)
820824
go func() {
@@ -987,8 +991,9 @@ func (vm *VM) Shutdown(context.Context) error {
987991
for _, handler := range vm.rpcHandlers {
988992
handler.Stop()
989993
}
990-
vm.eth.Stop()
991-
log.Info("Ethereum backend stop completed")
994+
if err := vm.eth.Stop(); err != nil {
995+
log.Error("failed stopping eth", "err", err)
996+
}
992997
if vm.usingStandaloneDB {
993998
if err := vm.db.Close(); err != nil {
994999
log.Error("failed to close database: %w", err)

plugin/evm/vm_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2701,7 +2701,9 @@ func TestStandaloneDB(t *testing.T) {
27012701
[]*commonEng.Fx{},
27022702
appSender,
27032703
)
2704-
defer vm.Shutdown(t.Context())
2704+
defer func() {
2705+
require.NoError(t, vm.Shutdown(t.Context()))
2706+
}()
27052707
require.NoError(t, err, "error initializing VM")
27062708
require.NoError(t, vm.SetState(t.Context(), snow.Bootstrapping))
27072709
require.NoError(t, vm.SetState(t.Context(), snow.NormalOp))
@@ -3148,7 +3150,7 @@ func TestWaitForEvent(t *testing.T) {
31483150
fork: &fork,
31493151
}).vm
31503152
testCase.testCase(t, tvm)
3151-
tvm.Shutdown(t.Context())
3153+
require.NoError(t, tvm.Shutdown(t.Context()))
31523154
})
31533155
}
31543156
}
@@ -3515,7 +3517,9 @@ func TestDelegatePrecompile_BehaviorAcrossUpgrades(t *testing.T) {
35153517
genesisJSON: string(genesisJSON),
35163518
fork: &tt.fork,
35173519
}).vm
3518-
defer vm.Shutdown(ctx)
3520+
defer func() {
3521+
require.NoError(t, vm.Shutdown(ctx))
3522+
}()
35193523

35203524
if tt.preDeployTime != 0 {
35213525
vm.clock.Set(time.Unix(tt.preDeployTime, 0))
@@ -3685,6 +3689,6 @@ func TestInspectDatabases(t *testing.T) {
36853689
db = memdb.New()
36863690
)
36873691

3688-
vm.initializeDBs(db)
3692+
require.NoError(t, vm.initializeDBs(db))
36893693
require.NoError(t, vm.inspectDatabases())
36903694
}

plugin/evm/vm_uptime_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ func TestUptimeTracker(t *testing.T) {
6363
[]*commonEng.Fx{},
6464
appSender,
6565
))
66-
defer vm.Shutdown(t.Context())
66+
t.Cleanup(func() {
67+
require.NoError(vm.Shutdown(t.Context()))
68+
})
6769

6870
// Mock the clock to control time progression
6971
clock := vm.clock

plugin/runner/runner.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,8 @@ func Run(versionStr string) {
2929
fmt.Printf("failed to set fd limit correctly due to: %s", err)
3030
os.Exit(1)
3131
}
32-
rpcchainvm.Serve(context.Background(), &evm.VM{})
32+
if err := rpcchainvm.Serve(context.Background(), &evm.VM{}); err != nil {
33+
fmt.Printf("failed to serve VM: %s", err)
34+
os.Exit(1)
35+
}
3336
}

0 commit comments

Comments
 (0)