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:
co-authored by
Emil Tullstedt
parent
993adb72e0
commit
9593d57914
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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,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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user