fix db WAL memory leak #1056

This commit is contained in:
Alireza Ahmadi
2026-03-22 19:02:09 +01:00
parent 135fcb0cda
commit 9d35e02e0e
3 changed files with 15 additions and 5 deletions
+1 -2
View File
@@ -13,8 +13,7 @@ func NewWALCheckpointJob() *WALCheckpointJob {
func (s *WALCheckpointJob) Run() {
db := database.GetDB()
_, err := db.Raw("PRAGMA wal_checkpoint(FULL)").Rows()
if err != nil {
if err := db.Exec("PRAGMA wal_checkpoint(FULL)").Error; err != nil {
logger.Error("Error checkpointing WAL: ", err.Error())
}
}
+13 -1
View File
@@ -5,6 +5,7 @@ import (
"os"
"path"
"strings"
"time"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database/model"
@@ -56,11 +57,22 @@ func OpenDB(dbPath string) error {
}
dsn := dbPath + sep + "_busy_timeout=10000&_journal_mode=WAL"
db, err = gorm.Open(sqlite.Open(dsn), c)
if err != nil {
return err
}
sqlDB, err := db.DB()
if err != nil {
return err
}
sqlDB.SetMaxOpenConns(25)
sqlDB.SetMaxIdleConns(5)
sqlDB.SetConnMaxLifetime(time.Hour)
if config.IsDebug() {
db = db.Debug()
}
return err
return nil
}
func InitDB(dbPath string) error {
+1 -2
View File
@@ -378,8 +378,7 @@ func (s *ClientService) DepleteClients() ([]uint, error) {
defer func() {
if err == nil {
tx.Commit()
_, err1 := db.Raw("PRAGMA wal_checkpoint(FULL)").Rows()
if err1 != nil {
if err1 := db.Exec("PRAGMA wal_checkpoint(FULL)").Error; err1 != nil {
logger.Error("Error checkpointing WAL: ", err1.Error())
}
} else {