diff options
-rw-r--r-- | app/models/merge_request_diff.rb | 5 | ||||
-rw-r--r-- | app/models/merge_request_diff_commit.rb | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index 351a662ae83..577f1794ffe 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -308,6 +308,11 @@ class MergeRequestDiff < ActiveRecord::Base # Faster inserts Gitlab::Database.bulk_insert('merge_request_diff_files', rows) + rescue ActiveRecord::RecordNotUnique + ids = rows.map { |row| row[:merge_request_diff_id] }.uniq.sort + + Gitlab::Sentry.track_exception(e, extra: { ids: ids }) + Rails.logger.info("#{self.class.name}: rows inserted twice for IDs #{ids}") end def build_external_merge_request_diff_files(diffs) diff --git a/app/models/merge_request_diff_commit.rb b/app/models/merge_request_diff_commit.rb index 4ad3690512d..e6d6196675c 100644 --- a/app/models/merge_request_diff_commit.rb +++ b/app/models/merge_request_diff_commit.rb @@ -26,6 +26,11 @@ class MergeRequestDiffCommit < ActiveRecord::Base end Gitlab::Database.bulk_insert(self.table_name, rows) + rescue ActiveRecord::RecordNotUnique => e + ids = rows.map { |row| row[:merge_request_diff_id] }.uniq.sort + + Rails.logger.info("#{self.class.name}: rows inserted twice for IDs #{ids}") + Gitlab::Sentry.track_exception(e, extra: { ids: ids }) end def to_hash |