summaryrefslogtreecommitdiffstats
path: root/migrations
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-06-29 09:27:06 +0100
committerGitHub <noreply@github.com>2018-06-29 09:27:06 +0100
commite51ae397664b6c2b04bfa263429da550240d160e (patch)
tree8bf4fc03b6a44ed5b64effdc0cd273fc122ac647 /migrations
parent912b140cc5e8b7feef3af2746c6a4ff06fb20b53 (diff)
downloadchat-e51ae397664b6c2b04bfa263429da550240d160e.tar.gz
chat-e51ae397664b6c2b04bfa263429da550240d160e.tar.bz2
chat-e51ae397664b6c2b04bfa263429da550240d160e.zip
Fix a really rare race condition in the migration scheduler. (#9000)
Diffstat (limited to 'migrations')
-rw-r--r--migrations/scheduler.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/migrations/scheduler.go b/migrations/scheduler.go
index 8a7ac30d0..5778c5cb3 100644
--- a/migrations/scheduler.go
+++ b/migrations/scheduler.go
@@ -59,7 +59,7 @@ func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, las
if state == MIGRATION_STATE_IN_PROGRESS {
// Check the migration job isn't wedged.
- if job != nil && job.LastActivityAt < model.GetMillis()-MIGRATION_JOB_WEDGED_TIMEOUT_MILLISECONDS {
+ if job != nil && job.LastActivityAt < model.GetMillis()-MIGRATION_JOB_WEDGED_TIMEOUT_MILLISECONDS && job.CreateAt < model.GetMillis()-MIGRATION_JOB_WEDGED_TIMEOUT_MILLISECONDS {
mlog.Warn("Job appears to be wedged. Rescheduling another instance.", mlog.String("scheduler", scheduler.Name()), mlog.String("wedged_job_id", job.Id), mlog.String("migration_key", key))
if err := scheduler.App.Jobs.SetJobError(job, nil); err != nil {
mlog.Error("Worker: Failed to set job error", mlog.String("scheduler", scheduler.Name()), mlog.String("job_id", job.Id), mlog.String("error", err.Error()))