mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Lint checks phase 2 (#1747)
* Log 3 unchecked errors Rather than ignore errors, log them at the WARNING log level. The server has been functioning without these, so assume they are not at the ERROR level. * Log errors in concurrency test If we can't initialize the configuration, treat the test as a failure. * Undo the errcheck on configurations for now. * Handle unchecked errors in pkg/manager * Resolve unchecked errors * Handle DLNA/DMS unchecked errors * Handle error checking in concurrency test Generalize config initialization, so we can initialize a configuration without writing it to disk. Use this in the test case, since otherwise the test fails to write. * Handle the remaining unchecked errors * Heed gosimple in update test * Use one-line if-initializer statements While here, fix a wrong variable capture error. * testing.T doesn't support %w use %v instead which is supported. * Remove unused query builder functions The Int/String criterion handler functions are now generalized. Thus, there's no need to keep these functions around anymore. * Mark filterBuilder.addRecursiveWith nolint The function is useful in the future and no other refactors are looking nice. Keep the function around, but tell the linter to ignore it. * Remove utils.Btoi There are no users of this utility function * Return error on scan failure If we fail to scan the row when looking for the unique checksum index, then report the error upwards. * Fix comments on exported functions * Fix typos * Fix startup error
This commit is contained in:
@@ -2,6 +2,7 @@ package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
@@ -26,7 +27,9 @@ func createImagesChecksumIndex() error {
|
||||
|
||||
if err == nil {
|
||||
var found bool
|
||||
row.Scan(&found)
|
||||
if err := row.Scan(&found); err != nil && err != sql.ErrNoRows {
|
||||
return fmt.Errorf("error while scanning for index: %w", err)
|
||||
}
|
||||
if found {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -151,7 +151,10 @@ func Reset(databasePath string) error {
|
||||
}
|
||||
}
|
||||
|
||||
Initialize(databasePath)
|
||||
if err := Initialize(databasePath); err != nil {
|
||||
return fmt.Errorf("[reset DB] unable to initialize: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -256,7 +259,9 @@ func RunMigrations() error {
|
||||
}
|
||||
|
||||
// re-initialise the database
|
||||
Initialize(dbPath)
|
||||
if err = Initialize(dbPath); err != nil {
|
||||
logger.Warnf("Error re-initializing the database: %v", err)
|
||||
}
|
||||
|
||||
// run a vacuum on the database
|
||||
logger.Info("Performing vacuum on database")
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/stashapp/stash/pkg/logger"
|
||||
)
|
||||
|
||||
// WithTxn executes the provided function within a transaction. It rolls back
|
||||
@@ -17,11 +18,15 @@ func WithTxn(fn func(tx *sqlx.Tx) error) error {
|
||||
defer func() {
|
||||
if p := recover(); p != nil {
|
||||
// a panic occurred, rollback and repanic
|
||||
tx.Rollback()
|
||||
if err := tx.Rollback(); err != nil {
|
||||
logger.Warnf("failure when performing transaction rollback: %v", err)
|
||||
}
|
||||
panic(p)
|
||||
} else if err != nil {
|
||||
// something went wrong, rollback
|
||||
tx.Rollback()
|
||||
if err := tx.Rollback(); err != nil {
|
||||
logger.Warnf("failure when performing transaction rollback: %v", err)
|
||||
}
|
||||
} else {
|
||||
// all good, commit
|
||||
err = tx.Commit()
|
||||
|
||||
Reference in New Issue
Block a user