Skip to content

Commit d7e8fd6

Browse files
authored
Enable all lint checks in trillian repo (#2979)
Fixed all of the remaining lint errors.
1 parent 96e5b23 commit d7e8fd6

25 files changed

+315
-87
lines changed

.golangci.yaml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,6 @@ linters-settings:
1515
- golang.org/x/net/context
1616
- github.com/gogo/protobuf/proto
1717

18-
linters:
19-
disable-all: true
20-
enable:
21-
- depguard
22-
- gocyclo
23-
- gofmt
24-
- goimports
25-
- govet
26-
- ineffassign
27-
- megacheck
28-
- misspell
29-
- revive
30-
- unused
31-
# TODO(gbelvin): write license linter and commit to upstream.
32-
# ./scripts/check_license.sh is run by ./scripts/presubmit.sh
33-
3418
issues:
3519
# Don't turn off any checks by default. We can do this explicitly if needed.
3620
exclude-use-default: false

storage/admin_helpers.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020

2121
"github.com/google/trillian"
2222
"github.com/google/trillian/monitoring"
23+
"k8s.io/klog/v2"
2324
)
2425

2526
const traceSpanRoot = "/trillian/storage"
@@ -131,7 +132,11 @@ func RunInAdminSnapshot(ctx context.Context, admin AdminStorage, fn func(tx Read
131132
if err != nil {
132133
return err
133134
}
134-
defer tx.Close()
135+
defer func() {
136+
if err := tx.Close(); err != nil {
137+
klog.Errorf("tx.Close(): %v", err)
138+
}
139+
}()
135140
if err := fn(tx); err != nil {
136141
return err
137142
}

storage/cache/subtree_cache.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/transparency-dev/merkle"
2626
"github.com/transparency-dev/merkle/compact"
2727
"google.golang.org/protobuf/proto"
28+
"k8s.io/klog/v2"
2829
)
2930

3031
// TODO(al): move this up the stack
@@ -116,7 +117,10 @@ func (s *SubtreeCache) preload(ids []compact.NodeID, getSubtrees GetSubtreesFunc
116117
// return it when done
117118
defer func() { workTokens <- true }()
118119

119-
PopulateLogTile(t, s.hasher)
120+
if err := PopulateLogTile(t, s.hasher); err != nil {
121+
// TODO(mhutchinson): This error should be propagated.
122+
klog.Errorf("PopulateLogTile(): %v", err)
123+
}
120124
ch <- t // Note: This never blocks because len(ch) == len(subtrees).
121125
}()
122126
}

storage/cloudspanner/getdb_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ func inMemClient(ctx context.Context, t testing.TB, dbName string, statements []
101101
}
102102
client, err := spanner.NewClient(ctx, dbName, option.WithGRPCConn(conn))
103103
if err != nil {
104-
conn.Close()
104+
defer func() {
105+
if err := conn.Close(); err != nil {
106+
t.Errorf("conn.Close(): %v", err)
107+
}
108+
}()
105109
t.Fatalf("Connecting to in-memory fake: %v", err)
106110
}
107111
t.Cleanup(client.Close)

storage/cloudspanner/log_storage.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,11 @@ func (ls *logStorage) begin(ctx context.Context, tree *trillian.Tree, readonly b
190190
if err := ltx.getLatestRoot(ctx); err == storage.ErrTreeNeedsInit {
191191
return ltx, err
192192
} else if err != nil {
193-
tx.Close()
193+
defer func() {
194+
if err := tx.Close(); err != nil {
195+
klog.Errorf("conn.Close(): %v", err)
196+
}
197+
}()
194198
return nil, err
195199
}
196200
return ltx, nil

storage/crdb/common_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ func TestMain(m *testing.M) {
5555
dburl.Path = "/"
5656

5757
// Set the environment variable for the test server
58-
os.Setenv(testdb.CockroachDBURIEnv, dburl.String())
58+
if err := os.Setenv(testdb.CockroachDBURIEnv, dburl.String()); err != nil {
59+
klog.Exitf("Failed to SetEnv CockroachDBURIEnv: %v", err)
60+
}
5961

6062
if !testdb.CockroachDBAvailable() {
6163
klog.Errorf("CockroachDB not available, skipping all CockroachDB storage tests")

storage/crdb/log_storage.go

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,11 @@ func (m *crdbLogStorage) GetActiveLogIDs(ctx context.Context) ([]int64, error) {
171171
if err != nil {
172172
return nil, err
173173
}
174-
defer rows.Close()
174+
defer func() {
175+
if err := rows.Close(); err != nil {
176+
klog.Errorf("rows.Close(): %v", err)
177+
}
178+
}()
175179
ids := []int64{}
176180
for rows.Next() {
177181
var treeID int64
@@ -204,12 +208,16 @@ func (m *crdbLogStorage) beginInternal(ctx context.Context, tree *trillian.Tree)
204208
ltx.treeTX.writeRevision = 0
205209
return ltx, err
206210
} else if err != nil {
207-
ttx.Close()
211+
if err := ttx.Close(); err != nil {
212+
klog.Errorf("ttx.Close(): %v", err)
213+
}
208214
return nil, err
209215
}
210216

211217
if err := ltx.root.UnmarshalBinary(ltx.slr.LogRoot); err != nil {
212-
ttx.Close()
218+
if err := ttx.Close(); err != nil {
219+
klog.Errorf("ttx.Close(): %v", err)
220+
}
213221
return nil, err
214222
}
215223

@@ -226,7 +234,11 @@ func (m *crdbLogStorage) ReadWriteTransaction(ctx context.Context, tree *trillia
226234
if err != nil && err != storage.ErrTreeNeedsInit {
227235
return err
228236
}
229-
defer tx.Close()
237+
defer func() {
238+
if err := tx.Close(); err != nil {
239+
klog.Errorf("tx.Close(): %v", err)
240+
}
241+
}()
230242
if err := f(ctx, tx); err != nil {
231243
return err
232244
}
@@ -239,7 +251,11 @@ func (m *crdbLogStorage) AddSequencedLeaves(ctx context.Context, tree *trillian.
239251
// Ensure we don't leak the transaction. For example if we get an
240252
// ErrTreeNeedsInit from beginInternal() or if AddSequencedLeaves fails
241253
// below.
242-
defer tx.Close()
254+
defer func() {
255+
if err := tx.Close(); err != nil {
256+
klog.Errorf("tx.Close(): %v", err)
257+
}
258+
}()
243259
}
244260
if err != nil {
245261
return nil, err
@@ -268,7 +284,11 @@ func (m *crdbLogStorage) QueueLeaves(ctx context.Context, tree *trillian.Tree, l
268284
// Ensure we don't leak the transaction. For example if we get an
269285
// ErrTreeNeedsInit from beginInternal() or if QueueLeaves fails
270286
// below.
271-
defer tx.Close()
287+
defer func() {
288+
if err := tx.Close(); err != nil {
289+
klog.Errorf("tx.Close(): %v", err)
290+
}
291+
}()
272292
}
273293
if err != nil {
274294
return nil, err
@@ -328,15 +348,23 @@ func (t *logTreeTX) DequeueLeaves(ctx context.Context, limit int, cutoffTime tim
328348
klog.Warningf("Failed to prepare dequeue select: %s", err)
329349
return nil, err
330350
}
331-
defer stx.Close()
351+
defer func() {
352+
if err := stx.Close(); err != nil {
353+
klog.Errorf("stx.Close(): %v", err)
354+
}
355+
}()
332356

333357
leaves := make([]*trillian.LogLeaf, 0, limit)
334358
rows, err := stx.QueryContext(ctx, t.treeID, cutoffTime.UnixNano(), limit)
335359
if err != nil {
336360
klog.Warningf("Failed to select rows for work: %s", err)
337361
return nil, err
338362
}
339-
defer rows.Close()
363+
defer func() {
364+
if err := rows.Close(); err != nil {
365+
klog.Errorf("rows.Close(): %v", err)
366+
}
367+
}()
340368

341369
for rows.Next() {
342370
leaf, dqInfo, err := t.dequeueLeaf(rows)
@@ -639,7 +667,11 @@ func (t *logTreeTX) getLeavesByRangeInternal(ctx context.Context, start, count i
639667
klog.Warningf("Failed to get leaves by range: %s", err)
640668
return nil, err
641669
}
642-
defer rows.Close()
670+
defer func() {
671+
if err := rows.Close(); err != nil {
672+
klog.Errorf("rows.Close(): %v", err)
673+
}
674+
}()
643675

644676
ret := make([]*trillian.LogLeaf, 0, count)
645677
for wantIndex := start; rows.Next(); wantIndex++ {
@@ -770,7 +802,11 @@ func (t *logTreeTX) StoreSignedLogRoot(ctx context.Context, root *trillian.Signe
770802

771803
func (t *logTreeTX) getLeavesByHashInternal(ctx context.Context, leafHashes [][]byte, tmpl *sql.Stmt, desc string) ([]*trillian.LogLeaf, error) {
772804
stx := t.tx.StmtContext(ctx, tmpl)
773-
defer stx.Close()
805+
defer func() {
806+
if err := stx.Close(); err != nil {
807+
klog.Errorf("stx.Close(): %v", err)
808+
}
809+
}()
774810

775811
var args []interface{}
776812
for _, hash := range leafHashes {
@@ -782,7 +818,11 @@ func (t *logTreeTX) getLeavesByHashInternal(ctx context.Context, leafHashes [][]
782818
klog.Warningf("Query() %s hash = %v", desc, err)
783819
return nil, err
784820
}
785-
defer rows.Close()
821+
defer func() {
822+
if err := rows.Close(); err != nil {
823+
klog.Errorf("rows.Close(): %v", err)
824+
}
825+
}()
786826

787827
// The tree could include duplicates so we don't know how many results will be returned
788828
var ret []*trillian.LogLeaf

storage/crdb/log_storage_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,11 @@ func TestGetActiveLogIDs(t *testing.T) {
754754
if err != nil {
755755
t.Fatalf("PrepareContext() returned err = %v", err)
756756
}
757-
defer updateDeletedStmt.Close()
757+
defer func() {
758+
if err := updateDeletedStmt.Close(); err != nil {
759+
t.Errorf("updateDeletedStmt.Close(): %v", err)
760+
}
761+
}()
758762
for _, treeID := range []int64{deletedLog.TreeId} {
759763
if _, err := updateDeletedStmt.ExecContext(ctx, true, treeID); err != nil {
760764
t.Fatalf("ExecContext(%v) returned err = %v", treeID, err)

storage/crdb/queue.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,11 @@ func (t *logTreeTX) removeSequencedLeaves(ctx context.Context, leaves []dequeued
125125
klog.Warningf("Failed to prep delete statement for sequenced work: %v", err)
126126
return err
127127
}
128-
defer stx.Close()
128+
defer func() {
129+
if err := stx.Close(); err != nil {
130+
klog.Errorf("stx.Close(): %v", err)
131+
}
132+
}()
129133
for _, dql := range leaves {
130134
result, err := stx.ExecContext(ctx, t.treeID, dql.queueTimestampNanos, dql.leafIdentityHash)
131135
err = checkResultOkAndRowCountIs(result, err, int64(1))

storage/crdb/sqladminstorage.go

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"google.golang.org/grpc/status"
2828
"google.golang.org/protobuf/proto"
2929
"google.golang.org/protobuf/types/known/timestamppb"
30+
"k8s.io/klog/v2"
3031
)
3132

3233
const (
@@ -88,7 +89,11 @@ func (s *sqlAdminStorage) ReadWriteTransaction(ctx context.Context, f storage.Ad
8889
if err != nil {
8990
return err
9091
}
91-
defer tx.Close()
92+
defer func() {
93+
if err := tx.Close(); err != nil {
94+
klog.Errorf("tx.Close(): %v", err)
95+
}
96+
}()
9297
if err := f(ctx, tx); err != nil {
9398
return err
9499
}
@@ -132,7 +137,11 @@ func (t *adminTX) GetTree(ctx context.Context, treeID int64) (*trillian.Tree, er
132137
if err != nil {
133138
return nil, err
134139
}
135-
defer stmt.Close()
140+
defer func() {
141+
if err := stmt.Close(); err != nil {
142+
klog.Errorf("stmt.Close(): %v", err)
143+
}
144+
}()
136145

137146
// GetTree is an entry point for most RPCs, let's provide somewhat nicer error messages.
138147
tree, err := storage.ReadTree(stmt.QueryRowContext(ctx, treeID))
@@ -158,12 +167,20 @@ func (t *adminTX) ListTrees(ctx context.Context, includeDeleted bool) ([]*trilli
158167
if err != nil {
159168
return nil, err
160169
}
161-
defer stmt.Close()
170+
defer func() {
171+
if err := stmt.Close(); err != nil {
172+
klog.Errorf("stmt.Close(): %v", err)
173+
}
174+
}()
162175
rows, err := stmt.QueryContext(ctx)
163176
if err != nil {
164177
return nil, err
165178
}
166-
defer rows.Close()
179+
defer func() {
180+
if err := rows.Close(); err != nil {
181+
klog.Errorf("rows.Close(): %v", err)
182+
}
183+
}()
167184
trees := []*trillian.Tree{}
168185
for rows.Next() {
169186
tree, err := storage.ReadTree(rows)
@@ -227,7 +244,11 @@ func (t *adminTX) CreateTree(ctx context.Context, tree *trillian.Tree) (*trillia
227244
if err != nil {
228245
return nil, err
229246
}
230-
defer insertTreeStmt.Close()
247+
defer func() {
248+
if err := insertTreeStmt.Close(); err != nil {
249+
klog.Errorf("insertTreeStmt.Close(): %v", err)
250+
}
251+
}()
231252

232253
_, err = insertTreeStmt.ExecContext(
233254
ctx,
@@ -269,7 +290,11 @@ func (t *adminTX) CreateTree(ctx context.Context, tree *trillian.Tree) (*trillia
269290
if err != nil {
270291
return nil, err
271292
}
272-
defer insertControlStmt.Close()
293+
defer func() {
294+
if err := insertControlStmt.Close(); err != nil {
295+
klog.Errorf("insertControlStmt.Close(): %v", err)
296+
}
297+
}()
273298
_, err = insertControlStmt.ExecContext(
274299
ctx,
275300
newTree.TreeId,
@@ -318,7 +343,11 @@ func (t *adminTX) UpdateTree(ctx context.Context, treeID int64, updateFunc func(
318343
if err != nil {
319344
return nil, err
320345
}
321-
defer stmt.Close()
346+
defer func() {
347+
if err := stmt.Close(); err != nil {
348+
klog.Errorf("stmt.Close(): %v", err)
349+
}
350+
}()
322351

323352
if _, err = stmt.ExecContext(
324353
ctx,

0 commit comments

Comments
 (0)