fix dblock on failure #964

This commit is contained in:
Alireza Ahmadi
2026-02-08 21:19:28 +01:00
parent f5714eccee
commit 90976cded1
2 changed files with 10 additions and 2 deletions
+7 -1
View File
@@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"os" "os"
"path" "path"
"strings"
"github.com/alireza0/s-ui/config" "github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database/model" "github.com/alireza0/s-ui/database/model"
@@ -49,7 +50,12 @@ func OpenDB(dbPath string) error {
c := &gorm.Config{ c := &gorm.Config{
Logger: gormLogger, Logger: gormLogger,
} }
db, err = gorm.Open(sqlite.Open(dbPath), c) sep := "?"
if strings.Contains(dbPath, "?") {
sep = "&"
}
dsn := dbPath + sep + "_busy_timeout=10000"
db, err = gorm.Open(sqlite.Open(dsn), c)
if config.IsDebug() { if config.IsDebug() {
db = db.Debug() db = db.Debug()
+3 -1
View File
@@ -169,7 +169,9 @@ func (s *ConfigService) Save(obj string, act string, data json.RawMessage, initU
if err != nil { if err != nil {
return nil, err return nil, err
} }
err = s.restartCoreWithConfig(data) configData := make(json.RawMessage, len(data))
copy(configData, data)
go func() { _ = s.restartCoreWithConfig(configData) }()
case "settings": case "settings":
err = s.SettingService.Save(tx, data) err = s.SettingService.Save(tx, data)
default: default: