s-ui/service
ayi21sui 855c269fb8 fix: SQLite connection leak causing unbounded memory growth
SaveStats returned tx.Create().Error directly without assigning to the
local err variable, so the deferred closure always saw err==nil and
called Commit() on a failed transaction. This left the underlying
go-sqlite3 connection unreturned to the pool. With StatsJob firing
every 10s, leaked connections accumulated ~150 KB each, reaching
400+ MB after ~33 hours.

Fixes:
- stats.go: assign Create result to err so defer can Rollback on failure
- backup.go: defer-close backupDb to prevent pool leak on early return
- migration/main.go: defer-close migration db
- db.go: add ConnMaxIdleTime(5m), lower MaxIdleConns to 2, set
  _cache_size=-200 to reduce per-connection memory from ~2 MB to ~200 KB

Measured: RSS dropped from 419 MB to 66 MB, db file descriptors from
4484 to 6, with zero growth over 3-minute observation window.
2026-05-07 12:30:59 +08:00
..
client.go fix db WAL memory leak #1056 2026-03-22 19:08:31 +01:00
config.go fix reset core conflict 2026-03-11 23:48:54 +01:00
endpoints.go go package 2025-09-18 23:19:56 +02:00
inbounds.go go package 2025-09-18 23:19:56 +02:00
outbounds.go go package 2025-09-18 23:19:56 +02:00
panel.go go package 2025-09-18 23:19:56 +02:00
server.go [feat] delayStart and autoReset #718 2026-03-08 23:18:08 +01:00
services.go go package 2025-09-18 23:19:56 +02:00
setting.go go package 2025-09-18 23:19:56 +02:00
stats.go fix: SQLite connection leak causing unbounded memory growth 2026-05-07 12:30:59 +08:00
tls.go go package 2025-09-18 23:19:56 +02:00
user.go go package 2025-09-18 23:19:56 +02:00
warp.go go package 2025-09-18 23:19:56 +02:00