mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-06 21:24:10 +00:00
fix(database): address Copilot review comments
- Remove _synchronous=NORMAL from DSN to preserve SQLite's default durability guarantees; WAL mode alone is sufficient for the fix - Add error handling for db.Exec and db.DB() in openTestDB helper - Use context.WithTimeout(5s) in with_fix sub-test to prevent hang on connection-never-released regression Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
de4d40a25c
commit
314f877d78
2 changed files with 11 additions and 5 deletions
|
|
@ -89,9 +89,14 @@ func TestConcurrentWrites(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("gorm.Open: %v", err)
|
t.Fatalf("gorm.Open: %v", err)
|
||||||
}
|
}
|
||||||
db.Exec("CREATE TABLE IF NOT EXISTS settings " +
|
if err := db.Exec("CREATE TABLE IF NOT EXISTS settings " +
|
||||||
"(id INTEGER PRIMARY KEY AUTOINCREMENT, key TEXT, value TEXT)")
|
"(id INTEGER PRIMARY KEY AUTOINCREMENT, key TEXT, value TEXT)").Error; err != nil {
|
||||||
sqlDB, _ := db.DB()
|
t.Fatalf("create settings table: %v", err)
|
||||||
|
}
|
||||||
|
sqlDB, err := db.DB()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("db.DB: %v", err)
|
||||||
|
}
|
||||||
sqlDB.SetMaxOpenConns(maxConns)
|
sqlDB.SetMaxOpenConns(maxConns)
|
||||||
t.Cleanup(func() { sqlDB.Close() })
|
t.Cleanup(func() { sqlDB.Close() })
|
||||||
return sqlDB
|
return sqlDB
|
||||||
|
|
@ -147,7 +152,8 @@ func TestConcurrentWrites(t *testing.T) {
|
||||||
// writes successfully, regardless of busy_timeout.
|
// writes successfully, regardless of busy_timeout.
|
||||||
t.Run("with_fix_pool_serialises_writes", func(t *testing.T) {
|
t.Run("with_fix_pool_serialises_writes", func(t *testing.T) {
|
||||||
sqlDB := openTestDB(t, 1)
|
sqlDB := openTestDB(t, 1)
|
||||||
ctx := context.Background()
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
conn1, err := sqlDB.Conn(ctx)
|
conn1, err := sqlDB.Conn(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ func InitDB(dbPath string) error {
|
||||||
c := &gorm.Config{
|
c := &gorm.Config{
|
||||||
Logger: gormLogger,
|
Logger: gormLogger,
|
||||||
}
|
}
|
||||||
db, err = gorm.Open(sqlite.Open(dbPath+"?_journal_mode=WAL&_synchronous=NORMAL"), c)
|
db, err = gorm.Open(sqlite.Open(dbPath+"?_journal_mode=WAL"), c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue