diff options
author | Shinya Maeda <shinya@gitlab.com> | 2018-06-01 17:09:46 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-06-06 17:49:48 +0900 |
commit | 2084e7ab9aad92d4a8196af01b9b8e02ffacb0a4 (patch) | |
tree | ced2cd19a96d56f6092fae5399dde9d543437561 /app | |
parent | 4064481501a24d31872914c845f5d8c2cfc08040 (diff) | |
download | gitlab-ce-2084e7ab9aad92d4a8196af01b9b8e02ffacb0a4.tar.gz |
Move find_builds_from_stale_live_traces method to Ci::Build
Diffstat (limited to 'app')
-rw-r--r-- | app/models/ci/build.rb | 15 | ||||
-rw-r--r-- | app/models/ci/build_trace_chunk.rb | 15 | ||||
-rw-r--r-- | app/workers/ci/rescue_stale_live_trace_worker.rb | 6 |
3 files changed, 18 insertions, 18 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index d93e7cb896f..f8fcab0e2f0 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -583,6 +583,21 @@ module Ci super(options).merge(when: read_attribute(:when)) end + # Find stale live traces and return their build ids + def self.find_builds_from_stale_live_traces + binding.pry + + Ci::BuildTraceChunk + .include(EachBatch).select(:build_id).group(:build_id).joins(:build) + .merge(Ci::Build.finished).where('ci_builds.finished_at < ?', 1.hour.ago) + .each_batch(column: :build_id) do |chunks| + build_ids = chunks.map { |chunk| chunk.build_id } + + binding.pry + yield where(id: build_ids) + end + end + private def update_artifacts_size diff --git a/app/models/ci/build_trace_chunk.rb b/app/models/ci/build_trace_chunk.rb index 80a63434283..4856f10846c 100644 --- a/app/models/ci/build_trace_chunk.rb +++ b/app/models/ci/build_trace_chunk.rb @@ -50,21 +50,6 @@ module Ci def finalize_fast_destroy(keys) redis_delete_data(keys) end - - # Find stale live traces and return their build ids - def find_builds_from_stale_live_trace - include(EachBatch) - .select(:build_id) - .group(:build_id) - .joins(:build) - .merge(Ci::Build.finished) - .where('ci_builds.finished_at < ?', 1.hour.ago) - .each_batch(column: :build_id) do |chunks| - build_ids = chunks.map { |chunk| chunk.build_id } - - yield build_ids - end - end end ## diff --git a/app/workers/ci/rescue_stale_live_trace_worker.rb b/app/workers/ci/rescue_stale_live_trace_worker.rb index c4a462446d4..6c8a20f64dd 100644 --- a/app/workers/ci/rescue_stale_live_trace_worker.rb +++ b/app/workers/ci/rescue_stale_live_trace_worker.rb @@ -7,12 +7,12 @@ module Ci # Archive live traces which still resides in redis or database # This could happen when sidekiq-jobs for archivements are lost by SIGKILL # Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/36791 - Ci::BuildTraceChunk.find_builds_from_stale_live_trace do |build_ids| - Ci::Build.where(id: build_ids).find_each do |build| + Ci::Build.find_builds_from_stale_live_traces do |builds| + builds.each do |build| begin build.trace.archive! rescue => e - Rails.logger.info "Failed to archive stale live trace. id: #{build.id} message: #{e.message}" + Rails.logger.error "Failed to archive stale live trace. id: #{build.id} message: #{e.message}" end end end |