Skip to content
Snippets Groups Projects
Commit 583635f0 authored by Andrew Newdigate's avatar Andrew Newdigate Committed by Rémy Coutable
Browse files

Updated Gitaly timeout values

parent 7eddfef4
No related branches found
No related tags found
1 merge request!10495Merge Requests - Assignee
---
title: Updated Gitaly fail-fast timeout values
merge_request: !20259
author:
type: performance
Loading
Loading
@@ -13,7 +13,7 @@ module Gitlab
oid: oid,
limit: limit
)
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_blob, request)
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_blob, request, timeout: GitalyClient.fast_timeout)
 
data = ''
blob = nil
Loading
Loading
@@ -43,7 +43,7 @@ module Gitlab
blob_ids: blob_ids
)
 
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_lfs_pointers, request)
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_lfs_pointers, request, timeout: GitalyClient.medium_timeout)
 
map_lfs_pointers(response)
end
Loading
Loading
@@ -66,7 +66,7 @@ module Gitlab
:blob_service,
:get_blobs,
request,
timeout: GitalyClient.default_timeout
timeout: GitalyClient.fast_timeout
)
 
GitalyClient::BlobsStitcher.new(response)
Loading
Loading
@@ -85,7 +85,7 @@ module Gitlab
request.not_in_refs += not_in
end
 
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_new_lfs_pointers, request)
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_new_lfs_pointers, request, timeout: GitalyClient.medium_timeout)
 
map_lfs_pointers(response)
end
Loading
Loading
@@ -96,7 +96,7 @@ module Gitlab
revision: encode_binary(revision)
)
 
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_all_lfs_pointers, request)
response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_all_lfs_pointers, request, timeout: GitalyClient.medium_timeout)
 
map_lfs_pointers(response)
end
Loading
Loading
Loading
Loading
@@ -70,7 +70,7 @@ module Gitlab
 
def commit_deltas(commit)
request = Gitaly::CommitDeltaRequest.new(diff_from_parent_request_params(commit))
response = GitalyClient.call(@repository.storage, :diff_service, :commit_delta, request)
response = GitalyClient.call(@repository.storage, :diff_service, :commit_delta, request, timeout: GitalyClient.fast_timeout)
 
response.flat_map { |msg| msg.deltas }
end
Loading
Loading
@@ -302,7 +302,7 @@ module Gitlab
end
end
 
response = GitalyClient.call(@repository.storage, :commit_service, :filter_shas_with_signatures, enum)
response = GitalyClient.call(@repository.storage, :commit_service, :filter_shas_with_signatures, enum, timeout: GitalyClient.fast_timeout)
 
response.flat_map do |msg|
msg.shas.map { |sha| EncodingHelper.encode!(sha) }
Loading
Loading
@@ -330,7 +330,7 @@ module Gitlab
 
def get_commit_signatures(commit_ids)
request = Gitaly::GetCommitSignaturesRequest.new(repository: @gitaly_repo, commit_ids: commit_ids)
response = GitalyClient.call(@repository.storage, :commit_service, :get_commit_signatures, request)
response = GitalyClient.call(@repository.storage, :commit_service, :get_commit_signatures, request, timeout: GitalyClient.fast_timeout)
 
signatures = Hash.new { |h, k| h[k] = [''.b, ''.b] }
current_commit_id = nil
Loading
Loading
@@ -349,7 +349,7 @@ module Gitlab
 
def get_commit_messages(commit_ids)
request = Gitaly::GetCommitMessagesRequest.new(repository: @gitaly_repo, commit_ids: commit_ids)
response = GitalyClient.call(@repository.storage, :commit_service, :get_commit_messages, request)
response = GitalyClient.call(@repository.storage, :commit_service, :get_commit_messages, request, timeout: GitalyClient.fast_timeout)
 
messages = Hash.new { |h, k| h[k] = ''.b }
current_commit_id = nil
Loading
Loading
Loading
Loading
@@ -46,7 +46,7 @@ module Gitlab
end
end
 
response = GitalyClient.call(@repository.storage, :conflicts_service, :resolve_conflicts, req_enum, remote_storage: target_repository.storage)
response = GitalyClient.call(@repository.storage, :conflicts_service, :resolve_conflicts, req_enum, remote_storage: target_repository.storage, timeout: GitalyClient.medium_timeout)
 
if response.resolution_error.present?
raise Gitlab::Git::Conflict::Resolver::ResolutionError, response.resolution_error
Loading
Loading
Loading
Loading
@@ -8,31 +8,31 @@ module Gitlab
def exists?(name)
request = Gitaly::NamespaceExistsRequest.new(storage_name: @storage, name: name)
 
gitaly_client_call(:namespace_exists, request).exists
gitaly_client_call(:namespace_exists, request, timeout: GitalyClient.fast_timeout).exists
end
 
def add(name)
request = Gitaly::AddNamespaceRequest.new(storage_name: @storage, name: name)
 
gitaly_client_call(:add_namespace, request)
gitaly_client_call(:add_namespace, request, timeout: GitalyClient.fast_timeout)
end
 
def remove(name)
request = Gitaly::RemoveNamespaceRequest.new(storage_name: @storage, name: name)
 
gitaly_client_call(:remove_namespace, request)
gitaly_client_call(:remove_namespace, request, timeout: nil)
end
 
def rename(from, to)
request = Gitaly::RenameNamespaceRequest.new(storage_name: @storage, from: from, to: to)
 
gitaly_client_call(:rename_namespace, request)
gitaly_client_call(:rename_namespace, request, timeout: GitalyClient.fast_timeout)
end
 
private
 
def gitaly_client_call(type, request)
GitalyClient.call(@storage, :namespace_service, type, request)
def gitaly_client_call(type, request, timeout: nil)
GitalyClient.call(@storage, :namespace_service, type, request, timeout: timeout)
end
end
end
Loading
Loading
Loading
Loading
@@ -17,7 +17,7 @@ module Gitlab
user: Gitlab::Git::User.from_gitlab(user).to_gitaly
)
 
response = GitalyClient.call(@repository.storage, :operation_service, :user_delete_tag, request)
response = GitalyClient.call(@repository.storage, :operation_service, :user_delete_tag, request, timeout: GitalyClient.medium_timeout)
 
if pre_receive_error = response.pre_receive_error.presence
raise Gitlab::Git::PreReceiveError, pre_receive_error
Loading
Loading
@@ -33,7 +33,7 @@ module Gitlab
message: encode_binary(message.to_s)
)
 
response = GitalyClient.call(@repository.storage, :operation_service, :user_create_tag, request)
response = GitalyClient.call(@repository.storage, :operation_service, :user_create_tag, request, timeout: GitalyClient.medium_timeout)
if pre_receive_error = response.pre_receive_error.presence
raise Gitlab::Git::PreReceiveError, pre_receive_error
elsif response.exists
Loading
Loading
@@ -276,7 +276,8 @@ module Gitlab
:operation_service,
:"user_#{rpc}",
request,
remote_storage: start_repository.storage
remote_storage: start_repository.storage,
timeout: GitalyClient.medium_timeout
)
 
handle_cherry_pick_or_revert_response(response)
Loading
Loading
Loading
Loading
@@ -12,7 +12,7 @@ module Gitlab
 
def branches
request = Gitaly::FindAllBranchesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_all_branches, request)
response = GitalyClient.call(@storage, :ref_service, :find_all_branches, request, timeout: GitalyClient.fast_timeout)
 
consume_find_all_branches_response(response)
end
Loading
Loading
@@ -23,26 +23,26 @@ module Gitlab
merged_only: true,
merged_branches: branch_names.map { |s| encode_binary(s) }
)
response = GitalyClient.call(@storage, :ref_service, :find_all_branches, request)
response = GitalyClient.call(@storage, :ref_service, :find_all_branches, request, timeout: GitalyClient.fast_timeout)
 
consume_find_all_branches_response(response)
end
 
def default_branch_name
request = Gitaly::FindDefaultBranchNameRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_default_branch_name, request)
response = GitalyClient.call(@storage, :ref_service, :find_default_branch_name, request, timeout: GitalyClient.fast_timeout)
Gitlab::Git.branch_name(response.name)
end
 
def branch_names
request = Gitaly::FindAllBranchNamesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_all_branch_names, request)
response = GitalyClient.call(@storage, :ref_service, :find_all_branch_names, request, timeout: GitalyClient.fast_timeout)
consume_refs_response(response) { |name| Gitlab::Git.branch_name(name) }
end
 
def tag_names
request = Gitaly::FindAllTagNamesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_all_tag_names, request)
response = GitalyClient.call(@storage, :ref_service, :find_all_tag_names, request, timeout: GitalyClient.fast_timeout)
consume_refs_response(response) { |name| Gitlab::Git.tag_name(name) }
end
 
Loading
Loading
@@ -67,19 +67,19 @@ module Gitlab
def local_branches(sort_by: nil)
request = Gitaly::FindLocalBranchesRequest.new(repository: @gitaly_repo)
request.sort_by = sort_by_param(sort_by) if sort_by
response = GitalyClient.call(@storage, :ref_service, :find_local_branches, request)
response = GitalyClient.call(@storage, :ref_service, :find_local_branches, request, timeout: GitalyClient.fast_timeout)
consume_find_local_branches_response(response)
end
 
def tags
request = Gitaly::FindAllTagsRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_all_tags, request)
response = GitalyClient.call(@storage, :ref_service, :find_all_tags, request, timeout: GitalyClient.medium_timeout)
consume_tags_response(response)
end
 
def ref_exists?(ref_name)
request = Gitaly::RefExistsRequest.new(repository: @gitaly_repo, ref: encode_binary(ref_name))
response = GitalyClient.call(@storage, :ref_service, :ref_exists, request)
response = GitalyClient.call(@storage, :ref_service, :ref_exists, request, timeout: GitalyClient.fast_timeout)
response.value
rescue GRPC::InvalidArgument => e
raise ArgumentError, e.message
Loading
Loading
@@ -91,7 +91,7 @@ module Gitlab
name: encode_binary(branch_name)
)
 
response = GitalyClient.call(@repository.storage, :ref_service, :find_branch, request)
response = GitalyClient.call(@repository.storage, :ref_service, :find_branch, request, timeout: GitalyClient.medium_timeout)
branch = response.branch
return unless branch
 
Loading
Loading
@@ -140,7 +140,7 @@ module Gitlab
except_with_prefix: except_with_prefixes.map { |r| encode_binary(r) }
)
 
response = GitalyClient.call(@repository.storage, :ref_service, :delete_refs, request)
response = GitalyClient.call(@repository.storage, :ref_service, :delete_refs, request, timeout: GitalyClient.fast_timeout)
 
raise Gitlab::Git::Repository::GitError, response.git_error if response.git_error.present?
end
Loading
Loading
@@ -153,7 +153,7 @@ module Gitlab
limit: limit
)
 
stream = GitalyClient.call(@repository.storage, :ref_service, :list_tag_names_containing_commit, request)
stream = GitalyClient.call(@repository.storage, :ref_service, :list_tag_names_containing_commit, request, timeout: GitalyClient.medium_timeout)
 
consume_ref_contains_sha_response(stream, :tag_names)
end
Loading
Loading
@@ -166,14 +166,14 @@ module Gitlab
limit: limit
)
 
stream = GitalyClient.call(@repository.storage, :ref_service, :list_branch_names_containing_commit, request)
stream = GitalyClient.call(@repository.storage, :ref_service, :list_branch_names_containing_commit, request, timeout: GitalyClient.medium_timeout)
 
consume_ref_contains_sha_response(stream, :branch_names)
end
 
def get_tag_messages(tag_ids)
request = Gitaly::GetTagMessagesRequest.new(repository: @gitaly_repo, tag_ids: tag_ids)
response = GitalyClient.call(@repository.storage, :ref_service, :get_tag_messages, request)
response = GitalyClient.call(@repository.storage, :ref_service, :get_tag_messages, request, timeout: GitalyClient.fast_timeout)
 
messages = Hash.new { |h, k| h[k] = ''.b }
current_tag_id = nil
Loading
Loading
Loading
Loading
@@ -28,13 +28,13 @@ module Gitlab
mirror_refmaps: Array.wrap(mirror_refmaps).map(&:to_s)
)
 
GitalyClient.call(@storage, :remote_service, :add_remote, request)
GitalyClient.call(@storage, :remote_service, :add_remote, request, timeout: GitalyClient.fast_timeout)
end
 
def remove_remote(name)
request = Gitaly::RemoveRemoteRequest.new(repository: @gitaly_repo, name: name)
 
response = GitalyClient.call(@storage, :remote_service, :remove_remote, request)
response = GitalyClient.call(@storage, :remote_service, :remove_remote, request, timeout: GitalyClient.fast_timeout)
 
response.result
end
Loading
Loading
Loading
Loading
@@ -21,7 +21,7 @@ module Gitlab
 
def cleanup
request = Gitaly::CleanupRequest.new(repository: @gitaly_repo)
GitalyClient.call(@storage, :repository_service, :cleanup, request)
GitalyClient.call(@storage, :repository_service, :cleanup, request, timeout: GitalyClient.fast_timeout)
end
 
def garbage_collect(create_bitmap)
Loading
Loading
@@ -41,13 +41,13 @@ module Gitlab
 
def repository_size
request = Gitaly::RepositorySizeRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :repository_size, request)
response = GitalyClient.call(@storage, :repository_service, :repository_size, request, timeout: GitalyClient.medium_timeout)
response.size
end
 
def apply_gitattributes(revision)
request = Gitaly::ApplyGitattributesRequest.new(repository: @gitaly_repo, revision: encode_binary(revision))
GitalyClient.call(@storage, :repository_service, :apply_gitattributes, request)
GitalyClient.call(@storage, :repository_service, :apply_gitattributes, request, timeout: GitalyClient.fast_timeout)
rescue GRPC::InvalidArgument => ex
raise Gitlab::Git::Repository::InvalidRef, ex
end
Loading
Loading
@@ -55,7 +55,7 @@ module Gitlab
def info_attributes
request = Gitaly::GetInfoAttributesRequest.new(repository: @gitaly_repo)
 
response = GitalyClient.call(@storage, :repository_service, :get_info_attributes, request)
response = GitalyClient.call(@storage, :repository_service, :get_info_attributes, request, timeout: GitalyClient.fast_timeout)
response.each_with_object("") do |message, attributes|
attributes << message.attributes
end
Loading
Loading
@@ -82,7 +82,7 @@ module Gitlab
 
def create_repository
request = Gitaly::CreateRepositoryRequest.new(repository: @gitaly_repo)
GitalyClient.call(@storage, :repository_service, :create_repository, request)
GitalyClient.call(@storage, :repository_service, :create_repository, request, timeout: GitalyClient.medium_timeout)
end
 
def has_local_branches?
Loading
Loading
@@ -98,7 +98,7 @@ module Gitlab
revisions: revisions.map { |r| encode_binary(r) }
)
 
response = GitalyClient.call(@storage, :repository_service, :find_merge_base, request)
response = GitalyClient.call(@storage, :repository_service, :find_merge_base, request, timeout: GitalyClient.fast_timeout)
response.base.presence
end
 
Loading
Loading
@@ -258,7 +258,7 @@ module Gitlab
)
request.old_revision = old_ref.b unless old_ref.nil?
 
response = GitalyClient.call(@storage, :repository_service, :write_ref, request)
response = GitalyClient.call(@storage, :repository_service, :write_ref, request, timeout: GitalyClient.fast_timeout)
 
raise Gitlab::Git::CommandError, encode!(response.error) if response.error.present?
 
Loading
Loading
@@ -288,7 +288,7 @@ module Gitlab
 
def calculate_checksum
request = Gitaly::CalculateChecksumRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :calculate_checksum, request)
response = GitalyClient.call(@storage, :repository_service, :calculate_checksum, request, timeout: GitalyClient.fast_timeout)
response.checksum.presence
rescue GRPC::DataLoss => e
raise Gitlab::Git::Repository::InvalidRepository.new(e)
Loading
Loading
@@ -297,12 +297,12 @@ module Gitlab
def raw_changes_between(from, to)
request = Gitaly::GetRawChangesRequest.new(repository: @gitaly_repo, from_revision: from, to_revision: to)
 
GitalyClient.call(@storage, :repository_service, :get_raw_changes, request)
GitalyClient.call(@storage, :repository_service, :get_raw_changes, request, timeout: GitalyClient.fast_timeout)
end
 
def search_files_by_name(ref, query)
request = Gitaly::SearchFilesByNameRequest.new(repository: @gitaly_repo, ref: ref, query: query)
GitalyClient.call(@storage, :repository_service, :search_files_by_name, request).flat_map(&:files)
GitalyClient.call(@storage, :repository_service, :search_files_by_name, request, timeout: GitalyClient.fast_timeout).flat_map(&:files)
end
 
def search_files_by_content(ref, query)
Loading
Loading
Loading
Loading
@@ -69,7 +69,7 @@ module Gitlab
commit_details: gitaly_commit_details(commit_details)
)
 
GitalyClient.call(@repository.storage, :wiki_service, :wiki_delete_page, request)
GitalyClient.call(@repository.storage, :wiki_service, :wiki_delete_page, request, timeout: GitalyClient.medium_timeout)
end
 
def find_page(title:, version: nil, dir: nil)
Loading
Loading
@@ -80,14 +80,14 @@ module Gitlab
directory: encode_binary(dir)
)
 
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_find_page, request)
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_find_page, request, timeout: GitalyClient.fast_timeout)
 
wiki_page_from_iterator(response)
end
 
def get_all_pages
request = Gitaly::WikiGetAllPagesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_get_all_pages, request)
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_get_all_pages, request, timeout: GitalyClient.medium_timeout)
pages = []
 
loop do
Loading
Loading
@@ -113,7 +113,7 @@ module Gitlab
per_page: options[:per_page] || Gollum::Page.per_page
)
 
stream = GitalyClient.call(@repository.storage, :wiki_service, :wiki_get_page_versions, request)
stream = GitalyClient.call(@repository.storage, :wiki_service, :wiki_get_page_versions, request, timeout: GitalyClient.medium_timeout)
 
versions = []
stream.each do |message|
Loading
Loading
@@ -132,7 +132,7 @@ module Gitlab
revision: encode_binary(revision)
)
 
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_find_file, request)
response = GitalyClient.call(@repository.storage, :wiki_service, :wiki_find_file, request, timeout: GitalyClient.fast_timeout)
wiki_file = nil
 
response.each do |message|
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment