From 236d6d91b2d73590def3a4967eaae4dc6d7c1804 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Wed, 7 Jul 2021 18:53:43 +0530 Subject: [PATCH] FIX: `fix_missing_s3` task fails on failed upload (take 2) (#13660) ref: https://github.com/discourse/discourse/commit/935aadbfddc6ece3742163e9d878a75617292e64 --- lib/tasks/uploads.rake | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/tasks/uploads.rake b/lib/tasks/uploads.rake index 4ae945cc9d5..a481b2337d9 100644 --- a/lib/tasks/uploads.rake +++ b/lib/tasks/uploads.rake @@ -1037,10 +1037,17 @@ def fix_missing_s3 else # we do not fix sha, it may be wrong for arbitrary reasons, if we correct it # we may end up breaking posts - upload.assign_attributes(etag: fixed_upload.etag, url: fixed_upload.url, verification_status: Upload.verification_statuses[:unchecked]) - saved = upload.save(validate: false) + save_error = nil + begin + upload.assign_attributes(etag: fixed_upload.etag, url: fixed_upload.url, verification_status: Upload.verification_statuses[:unchecked]) + upload.save!(validate: false) + rescue => save_error + # url might be null + end - if saved + if save_error + puts "Failed to save upload #{saved.errors.full_messages}" + else OptimizedImage.where(upload_id: upload.id).destroy_all rebake_ids = PostUpload.where(upload_id: upload.id).pluck(:post_id) @@ -1050,8 +1057,6 @@ def fix_missing_s3 post.rebake! end end - else - puts "Failed to save upload #{saved.errors.full_messages}" end end end