Chore: Enable errorlint linter (#29227)

* Enable errorlint linter
* Handle wrapped errors

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
Arve Knudsen
2020-11-19 14:47:17 +01:00
committed by GitHub
co-authored by Emil Tullstedt
parent 993adb72e0
commit 9593d57914
34 changed files with 142 additions and 101 deletions
+2 -1
View File
@@ -4,6 +4,7 @@ import (
"context"
"database/sql"
"database/sql/driver"
"errors"
"time"
"github.com/gchaincl/sqlhooks"
@@ -87,7 +88,7 @@ func (h *databaseQueryWrapper) After(ctx context.Context, query string, args ...
func (h *databaseQueryWrapper) OnError(ctx context.Context, err error, query string, args ...interface{}) error {
status := "error"
// https://golang.org/pkg/database/sql/driver/#ErrSkip
if err == nil || err == driver.ErrSkip {
if err == nil || errors.Is(err, driver.ErrSkip) {
status = "success"
}
+3 -2
View File
@@ -1,6 +1,7 @@
package migrator
import (
"errors"
"time"
_ "github.com/go-sql-driver/mysql"
@@ -168,8 +169,8 @@ func (mg *Migrator) inTransaction(callback dbTransactionFunc) error {
}
if err := callback(sess); err != nil {
if rollErr := sess.Rollback(); err != rollErr {
return errutil.Wrapf(err, "Failed to roll back transaction due to error: %s", rollErr)
if rollErr := sess.Rollback(); !errors.Is(err, rollErr) {
return errutil.Wrapf(err, "failed to roll back transaction due to error: %s", rollErr)
}
return err
@@ -1,6 +1,7 @@
package migrator
import (
"errors"
"fmt"
"strconv"
"strings"
@@ -169,7 +170,8 @@ func (db *MySQLDialect) TruncateDBTables() error {
}
func (db *MySQLDialect) isThisError(err error, errcode uint16) bool {
if driverErr, ok := err.(*mysql.MySQLError); ok {
var driverErr *mysql.MySQLError
if errors.As(err, &driverErr) {
if driverErr.Number == errcode {
return true
}
@@ -183,7 +185,8 @@ func (db *MySQLDialect) IsUniqueConstraintViolation(err error) bool {
}
func (db *MySQLDialect) ErrorMessage(err error) string {
if driverErr, ok := err.(*mysql.MySQLError); ok {
var driverErr *mysql.MySQLError
if errors.As(err, &driverErr) {
return driverErr.Message
}
return ""
@@ -1,6 +1,7 @@
package migrator
import (
"errors"
"fmt"
"strconv"
"strings"
@@ -172,7 +173,8 @@ func (db *PostgresDialect) TruncateDBTables() error {
}
func (db *PostgresDialect) isThisError(err error, errcode string) bool {
if driverErr, ok := err.(*pq.Error); ok {
var driverErr *pq.Error
if errors.As(err, &driverErr) {
if string(driverErr.Code) == errcode {
return true
}
@@ -182,7 +184,8 @@ func (db *PostgresDialect) isThisError(err error, errcode string) bool {
}
func (db *PostgresDialect) ErrorMessage(err error) string {
if driverErr, ok := err.(*pq.Error); ok {
var driverErr *pq.Error
if errors.As(err, &driverErr) {
return driverErr.Message
}
return ""
@@ -1,6 +1,7 @@
package migrator
import (
"errors"
"fmt"
"github.com/grafana/grafana/pkg/util/errutil"
@@ -120,7 +121,8 @@ func (db *SQLite3) TruncateDBTables() error {
}
func (db *SQLite3) isThisError(err error, errcode int) bool {
if driverErr, ok := err.(sqlite3.Error); ok {
var driverErr sqlite3.Error
if errors.As(err, &driverErr) {
if int(driverErr.ExtendedCode) == errcode {
return true
}
@@ -130,7 +132,8 @@ func (db *SQLite3) isThisError(err error, errcode int) bool {
}
func (db *SQLite3) ErrorMessage(err error) string {
if driverErr, ok := err.(sqlite3.Error); ok {
var driverErr sqlite3.Error
if errors.As(err, &driverErr) {
return driverErr.Error()
}
return ""
+3 -2
View File
@@ -2,6 +2,7 @@ package sqlstore
import (
"context"
"errors"
"time"
"github.com/grafana/grafana/pkg/bus"
@@ -42,8 +43,8 @@ func inTransactionWithRetryCtx(ctx context.Context, engine *xorm.Engine, callbac
err = callback(sess)
// special handling of database locked errors for sqlite, then we can retry 5 times
if sqlError, ok := err.(sqlite3.Error); ok && retry < 5 && sqlError.Code ==
sqlite3.ErrLocked || sqlError.Code == sqlite3.ErrBusy {
var sqlError sqlite3.Error
if errors.As(err, &sqlError) && retry < 5 && sqlError.Code == sqlite3.ErrLocked || sqlError.Code == sqlite3.ErrBusy {
if rollErr := sess.Rollback(); rollErr != nil {
return errutil.Wrapf(err, "Rolling back transaction due to error failed: %s", rollErr)
}
+2 -1
View File
@@ -2,6 +2,7 @@ package sqlstore
import (
"encoding/base64"
"errors"
"time"
"github.com/grafana/grafana/pkg/bus"
@@ -33,7 +34,7 @@ func GetUserByAuthInfo(query *models.GetUserByAuthInfoQuery) error {
authQuery.AuthId = query.AuthId
err = GetAuthInfo(authQuery)
if err != models.ErrUserNotFound {
if !errors.Is(err, models.ErrUserNotFound) {
if err != nil {
return err
}