diff --git a/pkg/infra/serverlock/migrations.go b/pkg/infra/serverlock/migrations.go index 4b9f95053a2..6498b3de550 100644 --- a/pkg/infra/serverlock/migrations.go +++ b/pkg/infra/serverlock/migrations.go @@ -8,7 +8,7 @@ func (sl *ServerLockService) AddMigration(mg *migrator.Migrator) { Name: "server_lock", Columns: []*migrator.Column{ {Name: "id", Type: migrator.DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, - {Name: "operation_uid", Type: migrator.DB_Text}, + {Name: "operation_uid", Type: migrator.DB_NVarchar, Length: 100}, {Name: "version", Type: migrator.DB_BigInt}, {Name: "last_execution", Type: migrator.DB_BigInt, Nullable: false}, }, diff --git a/pkg/infra/serverlock/serverlock.go b/pkg/infra/serverlock/serverlock.go index 08aededeba9..7a92ef36c73 100644 --- a/pkg/infra/serverlock/serverlock.go +++ b/pkg/infra/serverlock/serverlock.go @@ -21,6 +21,7 @@ type ServerLockService struct { // Init this service func (sl *ServerLockService) Init() error { + sl.log = log.New("infra.lockservice") return nil } diff --git a/pkg/services/cleanup/cleanup.go b/pkg/services/cleanup/cleanup.go index c15ae8ef36c..9338e3afab3 100644 --- a/pkg/services/cleanup/cleanup.go +++ b/pkg/services/cleanup/cleanup.go @@ -7,6 +7,8 @@ import ( "path" "time" + "github.com/grafana/grafana/pkg/infra/serverlock" + "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/log" m "github.com/grafana/grafana/pkg/models" @@ -15,8 +17,9 @@ import ( ) type CleanUpService struct { - log log.Logger - Cfg *setting.Cfg `inject:""` + log log.Logger + Cfg *setting.Cfg `inject:""` + ServerLockService *serverlock.ServerLockService `inject:""` } func init() { @@ -38,7 +41,10 @@ func (srv *CleanUpService) Run(ctx context.Context) error { srv.cleanUpTmpFiles() srv.deleteExpiredSnapshots() srv.deleteExpiredDashboardVersions() - srv.deleteOldLoginAttempts() + srv.ServerLockService.OncePerServerGroup(ctx, "delete old login attempts", time.Minute*10, func() { + srv.deleteOldLoginAttempts() + }) + case <-ctx.Done(): return ctx.Err() }