Skip to content

Commit 9b3fa79

Browse files
Enable more golangci-lint linters (#1181)
1 parent df4cf7b commit 9b3fa79

File tree

8 files changed

+29
-26
lines changed

8 files changed

+29
-26
lines changed

.golangci.yml

+6
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,27 @@ linters:
44
disable:
55
- errcheck
66
enable:
7+
- bodyclose
8+
- containedctx
79
- contextcheck
10+
- dogsled
811
- durationcheck
912
- errname
13+
- errorlint
1014
- execinquery
1115
- gofmt
1216
- ifshort
1317
- misspell
1418
- nilerr
19+
- nilnil
1520
- noctx
1621
- nolintlint
1722
- nosprintfhostport
1823
- prealloc
1924
- rowserrcheck
2025
- sqlclosecheck
2126
- unconvert
27+
- unparam
2228
- unused
2329
- wastedassign
2430
- whitespace

go/base/context.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ func (this *MigrationContext) ReadConfigFile() error {
858858
if cfg.Section("osc").HasKey("chunk_size") {
859859
this.config.Osc.Chunk_Size, err = cfg.Section("osc").Key("chunk_size").Int64()
860860
if err != nil {
861-
return fmt.Errorf("Unable to read osc chunk size: %s", err.Error())
861+
return fmt.Errorf("Unable to read osc chunk size: %w", err)
862862
}
863863
}
864864

@@ -873,7 +873,7 @@ func (this *MigrationContext) ReadConfigFile() error {
873873
if cfg.Section("osc").HasKey("max_lag_millis") {
874874
this.config.Osc.Max_Lag_Millis, err = cfg.Section("osc").Key("max_lag_millis").Int64()
875875
if err != nil {
876-
return fmt.Errorf("Unable to read max lag millis: %s", err.Error())
876+
return fmt.Errorf("Unable to read max lag millis: %w", err)
877877
}
878878
}
879879

go/logic/applier.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,7 @@ func (this *Applier) ApplyDMLEventQueries(dmlEvents [](*binlog.BinlogDMLEvent))
11341134
}
11351135
result, err := tx.Exec(buildResult.query, buildResult.args...)
11361136
if err != nil {
1137-
err = fmt.Errorf("%s; query=%s; args=%+v", err.Error(), buildResult.query, buildResult.args)
1137+
err = fmt.Errorf("%w; query=%s; args=%+v", err, buildResult.query, buildResult.args)
11381138
return rollback(err)
11391139
}
11401140

go/logic/inspect.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package logic
88
import (
99
"context"
1010
gosql "database/sql"
11+
"errors"
1112
"fmt"
1213
"reflect"
1314
"strings"
@@ -554,13 +555,11 @@ func (this *Inspector) CountTableRows(ctx context.Context) error {
554555
query := fmt.Sprintf(`select /* gh-ost */ count(*) as count_rows from %s.%s`, sql.EscapeName(this.migrationContext.DatabaseName), sql.EscapeName(this.migrationContext.OriginalTableName))
555556
var rowsEstimate int64
556557
if err := conn.QueryRowContext(ctx, query).Scan(&rowsEstimate); err != nil {
557-
switch err {
558-
case context.Canceled, context.DeadlineExceeded:
558+
if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {
559559
this.migrationContext.Log.Infof("exact row count cancelled (%s), likely because I'm about to cut over. I'm going to kill that query.", ctx.Err())
560560
return mysql.Kill(this.db, connectionID)
561-
default:
562-
return err
563561
}
562+
return err
564563
}
565564

566565
// row count query finished. nil out the cancel func, so the main migration thread

go/logic/migrator.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -391,9 +391,9 @@ func (this *Migrator) Migrate() (err error) {
391391
if err := this.applier.ReadMigrationRangeValues(); err != nil {
392392
return err
393393
}
394-
if err := this.initiateThrottler(); err != nil {
395-
return err
396-
}
394+
395+
this.initiateThrottler()
396+
397397
if err := this.hooksExecutor.onBeforeRowCopy(); err != nil {
398398
return err
399399
}
@@ -1096,7 +1096,7 @@ func (this *Migrator) addDMLEventsListener() error {
10961096
}
10971097

10981098
// initiateThrottler kicks in the throttling collection and the throttling checks.
1099-
func (this *Migrator) initiateThrottler() error {
1099+
func (this *Migrator) initiateThrottler() {
11001100
this.throttler = NewThrottler(this.migrationContext, this.applier, this.inspector, this.appVersion)
11011101

11021102
go this.throttler.initiateThrottlerCollection(this.firstThrottlingCollected)
@@ -1106,8 +1106,6 @@ func (this *Migrator) initiateThrottler() error {
11061106
<-this.firstThrottlingCollected // other, general metrics
11071107
this.migrationContext.Log.Infof("First throttle metrics collected")
11081108
go this.throttler.initiateThrottlerChecks()
1109-
1110-
return nil
11111109
}
11121110

11131111
func (this *Migrator) initiateApplier() error {

go/logic/throttler.go

+2
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,8 @@ func (this *Throttler) collectThrottleHTTPStatus(firstThrottlingCollected chan<-
308308
if err != nil {
309309
return false, err
310310
}
311+
defer resp.Body.Close()
312+
311313
atomic.StoreInt64(&this.migrationContext.ThrottleHTTPStatusCode, int64(resp.StatusCode))
312314
return false, nil
313315
}

go/sql/parser.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func NewParserFromAlterStatement(alterStatement string) *AlterTableParser {
6262
return parser
6363
}
6464

65-
func (this *AlterTableParser) tokenizeAlterStatement(alterStatement string) (tokens []string, err error) {
65+
func (this *AlterTableParser) tokenizeAlterStatement(alterStatement string) (tokens []string) {
6666
terminatingQuote := rune(0)
6767
f := func(c rune) bool {
6868
switch {
@@ -86,7 +86,7 @@ func (this *AlterTableParser) tokenizeAlterStatement(alterStatement string) (tok
8686
for i := range tokens {
8787
tokens[i] = strings.TrimSpace(tokens[i])
8888
}
89-
return tokens, nil
89+
return tokens
9090
}
9191

9292
func (this *AlterTableParser) sanitizeQuotesFromAlterStatement(alterStatement string) (strippedStatement string) {
@@ -95,7 +95,7 @@ func (this *AlterTableParser) sanitizeQuotesFromAlterStatement(alterStatement st
9595
return strippedStatement
9696
}
9797

98-
func (this *AlterTableParser) parseAlterToken(alterToken string) (err error) {
98+
func (this *AlterTableParser) parseAlterToken(alterToken string) {
9999
{
100100
// rename
101101
allStringSubmatch := renameColumnRegexp.FindAllStringSubmatch(alterToken, -1)
@@ -131,7 +131,6 @@ func (this *AlterTableParser) parseAlterToken(alterToken string) (err error) {
131131
this.isAutoIncrementDefined = true
132132
}
133133
}
134-
return nil
135134
}
136135

137136
func (this *AlterTableParser) ParseAlterStatement(alterStatement string) (err error) {
@@ -151,8 +150,7 @@ func (this *AlterTableParser) ParseAlterStatement(alterStatement string) (err er
151150
break
152151
}
153152
}
154-
alterTokens, _ := this.tokenizeAlterStatement(this.alterStatementOptions)
155-
for _, alterToken := range alterTokens {
153+
for _, alterToken := range this.tokenizeAlterStatement(this.alterStatementOptions) {
156154
alterToken = this.sanitizeQuotesFromAlterStatement(alterToken)
157155
this.parseAlterToken(alterToken)
158156
this.alterTokens = append(this.alterTokens, alterToken)

go/sql/parser_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -99,37 +99,37 @@ func TestTokenizeAlterStatement(t *testing.T) {
9999
parser := NewAlterTableParser()
100100
{
101101
alterStatement := "add column t int"
102-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
102+
tokens := parser.tokenizeAlterStatement(alterStatement)
103103
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int"}))
104104
}
105105
{
106106
alterStatement := "add column t int, change column i int"
107-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
107+
tokens := parser.tokenizeAlterStatement(alterStatement)
108108
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int", "change column i int"}))
109109
}
110110
{
111111
alterStatement := "add column t int, change column i int 'some comment'"
112-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
112+
tokens := parser.tokenizeAlterStatement(alterStatement)
113113
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int", "change column i int 'some comment'"}))
114114
}
115115
{
116116
alterStatement := "add column t int, change column i int 'some comment, with comma'"
117-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
117+
tokens := parser.tokenizeAlterStatement(alterStatement)
118118
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int", "change column i int 'some comment, with comma'"}))
119119
}
120120
{
121121
alterStatement := "add column t int, add column d decimal(10,2)"
122-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
122+
tokens := parser.tokenizeAlterStatement(alterStatement)
123123
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int", "add column d decimal(10,2)"}))
124124
}
125125
{
126126
alterStatement := "add column t int, add column e enum('a','b','c')"
127-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
127+
tokens := parser.tokenizeAlterStatement(alterStatement)
128128
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int", "add column e enum('a','b','c')"}))
129129
}
130130
{
131131
alterStatement := "add column t int(11), add column e enum('a','b','c')"
132-
tokens, _ := parser.tokenizeAlterStatement(alterStatement)
132+
tokens := parser.tokenizeAlterStatement(alterStatement)
133133
test.S(t).ExpectTrue(reflect.DeepEqual(tokens, []string{"add column t int(11)", "add column e enum('a','b','c')"}))
134134
}
135135
}

0 commit comments

Comments
 (0)