From 4686884dddd3ae8fd1a2cdbf786bb8273f675657 Mon Sep 17 00:00:00 2001 From: abador Date: Wed, 14 Feb 2024 10:10:23 +0100 Subject: [PATCH] Additional cleanup of inactive sessions and viewed selfservice errors --- persistence/sql/persister.go | 6 ++++++ persistence/sql/persister_session.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/persistence/sql/persister.go b/persistence/sql/persister.go index fa553cd559f5..034d37bd39d6 100644 --- a/persistence/sql/persister.go +++ b/persistence/sql/persister.go @@ -237,6 +237,12 @@ func (p *Persister) CleanupDatabase(ctx context.Context, wait time.Duration, old } time.Sleep(wait) + p.r.Logger().Println("Cleaning seen selfservice errors") + if err := p.ClearErrorContainers(ctx, older, false); err != nil { + return err + } + time.Sleep(wait) + p.r.Logger().Println("Successfully cleaned up the latest batch of the SQL database! " + "This should be re-run periodically, to be sure that all expired data is purged.") return nil diff --git a/persistence/sql/persister_session.go b/persistence/sql/persister_session.go index 7cbd968f50a2..d53be8c52e8a 100644 --- a/persistence/sql/persister_session.go +++ b/persistence/sql/persister_session.go @@ -428,7 +428,7 @@ func (p *Persister) DeleteExpiredSessions(ctx context.Context, expiresAt time.Ti //#nosec G201 -- TableName is static err = p.GetConnection(ctx).RawQuery(fmt.Sprintf( - "DELETE FROM %s WHERE id in (SELECT id FROM (SELECT id FROM %s c WHERE expires_at <= ? and nid = ? ORDER BY expires_at ASC LIMIT %d ) AS s )", + "DELETE FROM %s WHERE id in (SELECT id FROM (SELECT id FROM %s c WHERE (expires_at <= ? or active = false) and nid = ? ORDER BY expires_at ASC LIMIT %d ) AS s )", new(session.Session).TableName(ctx), new(session.Session).TableName(ctx), limit,