From 8d06731484f84ee680d12d355c3b82ddc1191140 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 16 Oct 2018 10:29:16 +1100 Subject: [PATCH] FIX: reduce amount of work onceoff does In the past onceoff was forcing inline download of gravatars, this can be so expensive that it will never finish This fix ensures it only marks avatars stale which will be picked up by regular schedules --- app/jobs/onceoff/fix_invalid_gravatar_uploads.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/jobs/onceoff/fix_invalid_gravatar_uploads.rb b/app/jobs/onceoff/fix_invalid_gravatar_uploads.rb index 1374401101c..397ad1b6c49 100644 --- a/app/jobs/onceoff/fix_invalid_gravatar_uploads.rb +++ b/app/jobs/onceoff/fix_invalid_gravatar_uploads.rb @@ -2,11 +2,13 @@ module Jobs class FixInvalidGravatarUploads < Jobs::Onceoff def execute_onceoff(args) Upload.where(original_filename: "gravatar.png").find_each do |upload| + # note, this still feels pretty expensive for a once off + # we may need to re-evaluate this extension = FastImage.type(Discourse.store.path_for(upload)) current_extension = upload.extension if extension.to_s.downcase != current_extension.to_s.downcase - upload.user.user_avatar.update_gravatar! + upload&.user&.user_avatar&.update_columns(last_gravatar_download_attempt: nil) end end end