Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/update_build_state_service.rb')
-rw-r--r--app/services/ci/update_build_state_service.rb20
1 files changed, 17 insertions, 3 deletions
diff --git a/app/services/ci/update_build_state_service.rb b/app/services/ci/update_build_state_service.rb
index fb67b0d2355..f01d41d9414 100644
--- a/app/services/ci/update_build_state_service.rb
+++ b/app/services/ci/update_build_state_service.rb
@@ -82,6 +82,10 @@ module Ci
unless checksum.valid?
metrics.increment_trace_operation(operation: :invalid)
+ if checksum.corrupted?
+ metrics.increment_trace_operation(operation: :corrupted)
+ end
+
next unless log_invalid_chunks?
::Gitlab::ErrorTracking.log_exception(InvalidTraceError.new,
@@ -89,7 +93,8 @@ module Ci
build_id: build.id,
state_crc32: checksum.state_crc32,
chunks_crc32: checksum.chunks_crc32,
- chunks_count: checksum.chunks_count
+ chunks_count: checksum.chunks_count,
+ chunks_corrupted: checksum.corrupted?
)
end
end
@@ -151,13 +156,21 @@ module Ci
end
def has_checksum?
- params.dig(:checksum).present?
+ trace_checksum.present?
end
def build_running?
build_state == 'running'
end
+ def trace_checksum
+ params.dig(:output, :checksum) || params.dig(:checksum)
+ end
+
+ def trace_bytesize
+ params.dig(:output, :bytesize)
+ end
+
def pending_state
strong_memoize(:pending_state) { ensure_pending_state }
end
@@ -166,7 +179,8 @@ module Ci
build_state = Ci::BuildPendingState.safe_find_or_create_by(
build_id: build.id,
state: params.fetch(:state),
- trace_checksum: params.fetch(:checksum),
+ trace_checksum: trace_checksum,
+ trace_bytesize: trace_bytesize,
failure_reason: params.dig(:failure_reason)
)