From 80ef27f29c9776a89029a814d3096e73d66d2cba Mon Sep 17 00:00:00 2001 From: Colin Adler Date: Wed, 5 Apr 2023 12:20:24 -0500 Subject: [PATCH 1/2] fix(dbpurge): use `dbauthz.AsSystemRestricted` Fixes: https://github.com/coder/coder/issues/7016 --- coderd/database/dbpurge/dbpurge.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/coderd/database/dbpurge/dbpurge.go b/coderd/database/dbpurge/dbpurge.go index e7d3876669e52..26c31dfa382f4 100644 --- a/coderd/database/dbpurge/dbpurge.go +++ b/coderd/database/dbpurge/dbpurge.go @@ -10,6 +10,11 @@ import ( "cdr.dev/slog" "github.com/coder/coder/coderd/database" + "github.com/coder/coder/coderd/database/dbauthz" +) + +const ( + delay = 24 * time.Hour ) // New creates a new periodically purging database instance. @@ -19,15 +24,18 @@ import ( func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer { closed := make(chan struct{}) ctx, cancelFunc := context.WithCancel(ctx) + //nolint:gocritic // The system purges old db records without user input. + ctx = dbauthz.AsSystemRestricted(ctx) go func() { defer close(closed) - ticker := time.NewTicker(24 * time.Hour) - defer ticker.Stop() + + timer := time.NewTimer(delay) + defer timer.Stop() for { select { case <-ctx.Done(): return - case <-ticker.C: + case <-timer.C: } var eg errgroup.Group @@ -44,6 +52,8 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer { } logger.Error(ctx, "failed to purge old database entries", slog.Error(err)) } + + timer.Reset(delay) } }() return &instance{ From 2993f65a84c143bdafe8ee7678f65e38ec98c68d Mon Sep 17 00:00:00 2001 From: Colin Adler Date: Wed, 5 Apr 2023 12:35:08 -0500 Subject: [PATCH 2/2] fixup! fix(dbpurge): use `dbauthz.AsSystemRestricted` --- coderd/database/dbpurge/dbpurge.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/coderd/database/dbpurge/dbpurge.go b/coderd/database/dbpurge/dbpurge.go index 26c31dfa382f4..abafcb4559f25 100644 --- a/coderd/database/dbpurge/dbpurge.go +++ b/coderd/database/dbpurge/dbpurge.go @@ -29,13 +29,13 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer { go func() { defer close(closed) - timer := time.NewTimer(delay) - defer timer.Stop() + ticker := time.NewTicker(delay) + defer ticker.Stop() for { select { case <-ctx.Done(): return - case <-timer.C: + case <-ticker.C: } var eg errgroup.Group @@ -53,7 +53,7 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer { logger.Error(ctx, "failed to purge old database entries", slog.Error(err)) } - timer.Reset(delay) + ticker.Reset(delay) } }() return &instance{ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy