summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-06-01 17:09:46 +0900
committerShinya Maeda <shinya@gitlab.com>2018-06-06 17:49:48 +0900
commit2084e7ab9aad92d4a8196af01b9b8e02ffacb0a4 (patch)
treeced2cd19a96d56f6092fae5399dde9d543437561 /app
parent4064481501a24d31872914c845f5d8c2cfc08040 (diff)
downloadgitlab-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.rb15
-rw-r--r--app/models/ci/build_trace_chunk.rb15
-rw-r--r--app/workers/ci/rescue_stale_live_trace_worker.rb6
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