[bugfix] Return useful err on server start failure (#3879)

* [bugfix] Return useful err on `server start` failure

* remove scheduler started func

* remove tryUntil
This commit is contained in:
tobi 2025-03-05 19:12:53 +01:00 committed by tobi
commit d0ae8f6231
9 changed files with 86 additions and 81 deletions

View file

@ -23,6 +23,7 @@ import (
"codeberg.org/gruf/go-cache/v3/ttl"
"github.com/superseriousbusiness/gotosocial/internal/cache/headerfilter"
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
"github.com/superseriousbusiness/gotosocial/internal/log"
)
@ -125,16 +126,18 @@ func (c *Caches) Init() {
// Start will start any caches that require a background
// routine, which usually means any kind of TTL caches.
func (c *Caches) Start() {
func (c *Caches) Start() error {
log.Infof(nil, "start: %p", c)
tryUntil("starting webfinger cache", 5, func() bool {
return c.Webfinger.Start(5 * time.Minute)
})
if !c.Webfinger.Start(5 * time.Minute) {
return gtserror.New("could not start webfinger cache")
}
tryUntil("starting statusesFilterableFields cache", 5, func() bool {
return c.StatusesFilterableFields.Start(5 * time.Minute)
})
if !c.StatusesFilterableFields.Start(5 * time.Minute) {
return gtserror.New("could not start statusesFilterableFields cache")
}
return nil
}
// Stop will stop any caches that require a background
@ -142,8 +145,8 @@ func (c *Caches) Start() {
func (c *Caches) Stop() {
log.Infof(nil, "stop: %p", c)
tryUntil("stopping webfinger cache", 5, c.Webfinger.Stop)
tryUntil("stopping statusesFilterableFields cache", 5, c.StatusesFilterableFields.Stop)
_ = c.Webfinger.Stop()
_ = c.StatusesFilterableFields.Stop()
}
// Sweep will sweep all the available caches to ensure none