cleanups to startup code and goroutine code

This commit is contained in:
2026-05-06 22:19:08 -06:00
parent 08a10a55dd
commit a2c2a1f750
9 changed files with 92 additions and 88 deletions
+10 -7
View File
@@ -29,9 +29,9 @@ import (
// Error classifications
const (
classUnspecified = 0
classNeedInstall = 1
classNeedConvert = 2
classUnspecified = iota // unspecified, barf
classNeedInstall // need to install the database
classNeedConvert // need to convert a Venice database
)
// MySQL Errors
@@ -210,11 +210,11 @@ func prepareDB() (string, error) {
}
// SetupDb sets up the database and associated items.
func SetupDb() (func(), error) {
func SetupDb() (string, func(), error) {
exitfns := make([]func(), 0, 2)
version, err := prepareDB()
if err != nil {
return nil, err
return "X", nil, err
}
db, err := sqlx.Connect(config.GlobalComputedConfig.DatabaseDriver, buildMysqlDSN(false))
if err == nil {
@@ -223,6 +223,7 @@ func SetupDb() (func(), error) {
if err == nil {
if g.Version != version {
log.Warnf("!! database version %s does not match prepared version %s", g.Version, version)
version = g.Version
}
setupAdCache()
setupUserCache()
@@ -232,11 +233,11 @@ func SetupDb() (func(), error) {
setupConferenceCache()
exitfns = append(exitfns, setupAuditWriter())
exitfns = append(exitfns, setupIPBanSweep())
log.Infof("SetupDb(): database version %s", g.Version)
log.Infof("SetupDb(): database version %s", version)
}
}
slices.Reverse(exitfns)
return func() {
return version, func() {
for _, f := range exitfns {
f()
}
@@ -262,6 +263,8 @@ func transaction(ctx context.Context) (*sqlx.Tx, func() error, func()) {
err = tx.Commit()
if err == nil {
live = false
} else {
log.Errorf("***COMMIT ERROR*** %v", err)
}
}
return err