From efc0cc5e8557ebc54dd30931a27767139e808c80 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Wed, 8 Jul 2020 10:59:49 -0600 Subject: caddytls: Move initial storage clean op into goroutine Sometimes this operation can take a while (we observed 7 minutes recently, with a large, globally-distributed storage backend). --- modules/caddytls/tls.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'modules/caddytls') diff --git a/modules/caddytls/tls.go b/modules/caddytls/tls.go index cc89ef5..b2d05be 100644 --- a/modules/caddytls/tls.go +++ b/modules/caddytls/tls.go @@ -373,9 +373,9 @@ func (t *TLS) AllMatchingCertificates(san string) []certmagic.Certificate { return t.certCache.AllMatchingCertificates(san) } -// keepStorageClean immediately cleans up all known storage units -// if it was not recently done, and starts a goroutine that runs -// the operation at every tick from t.storageCleanTicker. +// keepStorageClean starts a goroutine that immediately cleans up all +// known storage units if it was not recently done, and then runs the +// operation at every tick from t.storageCleanTicker. func (t *TLS) keepStorageClean() { t.storageCleanTicker = time.NewTicker(storageCleanInterval) t.storageCleanStop = make(chan struct{}) @@ -385,6 +385,7 @@ func (t *TLS) keepStorageClean() { log.Printf("[PANIC] storage cleaner: %v\n%s", err, debug.Stack()) } }() + t.cleanStorageUnits() for { select { case <-t.storageCleanStop: @@ -394,7 +395,6 @@ func (t *TLS) keepStorageClean() { } } }() - t.cleanStorageUnits() } func (t *TLS) cleanStorageUnits() { -- cgit v1.2.3