gitlab-org--gitlab-foss/lib/gitlab
Bob Van Landuyt f1ae1e39ce Move the circuitbreaker check out in a separate process
Moving the check out of the general requests, makes sure we don't have
any slowdown in the regular requests.

To keep the process performing this checks small, the check is still
performed inside a unicorn. But that is called from a process running
on the same server.

Because the checks are now done outside normal request, we can have a
simpler failure strategy:

The check is now performed in the background every
`circuitbreaker_check_interval`. Failures are logged in redis. The
failures are reset when the check succeeds. Per check we will try
`circuitbreaker_access_retries` times within
`circuitbreaker_storage_timeout` seconds.

When the number of failures exceeds
`circuitbreaker_failure_count_threshold`, we will block access to the
storage.

After `failure_reset_time` of no checks, we will clear the stored
failures. This could happen when the process that performs the checks
is not running.
2017-12-08 09:11:39 +01:00
..
auth Renaming AuthenticationException to AuthenticationError 2017-11-17 13:33:21 +01:00
background_migration Process normal paths in batch containing bad paths 2017-12-05 14:57:58 -08:00
badge Reword success to passing for pipeline badges 2017-07-21 10:22:11 +02:00
bare_repository_import Improve GitLab Import rake task to work with Hashed Storage and Subgroups 2017-11-07 19:11:42 +00:00
bitbucket_import Fix bitbucket wiki import with hashed storage enabled 2017-11-20 16:14:41 +00:00
cache Whitelist or fix additional Gitlab/PublicSend cop violations 2017-08-14 12:14:11 -04:00
checks Handle forks in Gitlab::Checks::LfsIntegrity 2017-11-09 13:44:20 +00:00
ci Update pipeline create chain Prometheus metric 2017-12-07 10:27:07 +01:00
conflict Move line code generation into Gitlab::Git 2017-10-12 22:13:05 -03:00
cycle_analytics Remove serialised diff and commit columns 2017-11-28 16:13:40 +00:00
data_builder Use full URL of user avatar on webhook push 2017-10-05 23:54:56 +11:00
database Consistently schedule Sidekiq jobs 2017-12-05 11:59:39 +01:00
dependency_linker Fix diff of requirements.txt file by not matching newlines as part of package names 2017-06-27 16:20:01 -05:00
diff Merge branch 'fix_39233' into 'master' 2017-12-07 20:35:39 +00:00
downtime_check
email Create merge request from email 2017-12-05 08:41:58 +01:00
etag_caching Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
fogbugz_import Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
gfm Fix rewriting issue references with group milestones 2017-09-20 09:55:54 +00:00
git Move the circuitbreaker check out in a separate process 2017-12-08 09:11:39 +01:00
gitaly_client Migrate Git::Repository#fsck to Gitaly 2017-12-08 00:27:11 +00:00
github_import Rename fetch_refs to refmap 2017-11-23 16:59:58 +01:00
gitlab_import Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
google_code_import
gpg Fix error with GPG signature updater when commit was deleted 2017-10-07 10:47:53 -05:00
grape_logging/formatters Use a custom GrapeLogging formatter to get the timestamp 2017-09-07 07:48:13 -07:00
graphs
health_checks Allow the git circuit breaker to correctly handle missing repository storages 2017-09-22 10:05:28 +01:00
hook_data Add total_time_spent to the changes hash in issuable Webhook payloads 2017-11-15 15:42:19 +01:00
i18n Only require simple_po_parser in rake task that needs it 2017-09-04 08:30:10 +02:00
import_export Remove serialised diff and commit columns 2017-11-28 16:13:40 +00:00
kubernetes Ensure Namespace's is namespaced in Gitlab::Kubernetes::Helm#initialize and fix a transient failing spec due to that 2017-12-01 15:55:06 +01:00
ldap Merge branch '18040-rubocop-line-break-after-guard-clause' into 'master' 2017-11-20 09:22:14 +00:00
legacy_github_import Rename fetch_refs to refmap 2017-11-23 16:59:58 +01:00
metrics Update prometheus-client-mmap gem to highly optimized version 2017-12-07 17:47:23 +01:00
middleware Revert "check for read_only? first before seeing if request is disallowed" 2017-11-21 15:35:30 +01:00
o_auth Changing OAuth lookup to be case insensitive 2017-11-17 14:24:25 +00:00
performance_bar Fix SQL timings for the performance bar 2017-11-03 15:45:58 +01:00
project_authorizations Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
prometheus Replce kubernetes_service and deployment_service to deployment_platform 2017-11-28 20:47:59 +09:00
quick_actions added date parameter for time tracking 2017-10-13 11:41:49 +01:00
redis Don't depend on Rails for Redis configuration file paths 2017-08-15 15:08:56 -04:00
request_profiler
saml Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
sanitizers
serializer
sherlock Ignore SQL CACHE hits in Sherlock 2017-11-03 16:08:37 +01:00
sidekiq_middleware Send SIGSTP before SIGTERM to actually give Sidekiq jobs 30s to finish when the memory killer kicks in 2017-11-02 15:33:19 +01:00
sidekiq_status
slash_commands Enable Layout/TrailingWhitespace cop and auto-correct offenses 2017-08-15 13:44:37 -04:00
sql Use fuzzy search with minimum length of 3 characters where appropriate 2017-11-27 11:29:40 +01:00
storage_check Move the circuitbreaker check out in a separate process 2017-12-08 09:11:39 +01:00
template Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
testing fix bracket styling 2017-11-02 10:20:11 -05:00
utils Add Gitlab::Utils::StrongMemoize 2017-11-13 15:27:30 +00:00
view/presenter implement Presenter::Base#declarative_policy_delegate 2017-06-27 12:41:54 -07:00
access.rb Clarify wording of protected branch settings for the default branch 2017-11-20 16:09:56 +00:00
allowable.rb convert all the policies to DeclarativePolicy 2017-06-27 12:44:37 -07:00
app_logger.rb
asciidoc.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
auth.rb Merge branch 'dm-fix-registry-with-sudo-token' into 'master' 2017-11-24 09:09:38 +00:00
background_migration.rb Remove obsolete argument from bg migrations code 2017-07-18 10:43:12 +02:00
blame.rb
changes_list.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
chat_name_token.rb Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
ci_access.rb
closing_issue_extractor.rb Allow creating merge requests across forks of a project 2017-10-07 11:46:23 +02:00
color_schemes.rb
config_helper.rb
contributions_calendar.rb fix rubocop violations 👮 2017-07-31 18:19:18 -05:00
contributor.rb
current_settings.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
daemon.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
database.rb Merge branch 'mk-add-old-attachments-to-uploads-table' into 'master' 2017-12-07 02:34:58 +00:00
dependency_linker.rb
downtime_check.rb Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
ee_compat_check.rb In EeCompatCheck, always reset to canonical-ee/master when applying a patch 2017-11-23 10:10:01 +01:00
emoji.rb
encoding_helper.rb Fix encoding bugs in Gitlab::Git::User 2017-11-23 10:48:57 +00:00
environment.rb Move hostname to Gitlab::Environment 2017-08-04 15:38:49 +02:00
environment_logger.rb
exclusive_lease.rb Adds exclusive lease to Git garbage collect worker. 2017-09-07 18:52:04 +01:00
fake_application_settings.rb
file_detector.rb Cache issuable template names 2017-10-12 13:26:03 +01:00
file_finder.rb Fix searching for files by path 2017-08-25 10:36:32 +01:00
git.rb add support for the commit reference filter 2017-12-07 09:01:37 -05:00
git_access.rb refactor code to match EE changes 2017-12-07 17:13:40 +01:00
git_access_wiki.rb refactor code to match EE changes 2017-12-07 17:13:40 +01:00
git_logger.rb
git_post_receive.rb
git_ref_validator.rb Prevent branches or tags from starting with invalid characters (e.g. -, .) 2017-10-05 14:56:36 -07:00
gitaly_client.rb Remove Rugged::Repository#empty? 2017-12-07 15:33:30 +00:00
github_import.rb Rename fetch_refs to refmap 2017-11-23 16:59:58 +01:00
gl_id.rb
gl_repository.rb
gon_helper.rb Icon Sprite URL is also local even if asset_host is set 2017-11-09 10:38:00 +01:00
gpg.rb Address feedback from last code review 2017-10-05 08:25:27 -05:00
group_hierarchy.rb Reuse base_and_ancestors for ancestors in GroupHierarchy 2017-10-10 16:55:02 +02:00
highlight.rb Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
i18n.rb Add Dutch as an available language. 2017-09-18 17:13:47 +02:00
identifier.rb
import_export.rb Remove serialised diff and commit columns 2017-11-28 16:13:40 +00:00
import_formatter.rb
import_sources.rb Replace old GH importer with the parallel importer 2017-11-07 23:25:03 +01:00
incoming_email.rb
issuable_metadata.rb Fail when issuable_meta_data is called on an unlimited collection 2017-11-07 16:26:55 +00:00
issuable_sorter.rb
issuables_count_for_state.rb Re-use issue/MR counts for the pagination system 2017-09-05 11:53:45 +02:00
issues_labels.rb
job_waiter.rb Rewrite the GitHub importer from scratch 2017-11-07 23:24:59 +01:00
kubernetes.rb Fix broken certificate-authority-data with kubectl >= 1.8.0 2017-10-03 09:10:40 +02:00
lazy.rb Whitelist or fix additional Gitlab/PublicSend cop violations 2017-08-14 12:14:11 -04:00
lfs_token.rb Fix Error 500 when pushing LFS objects with a write deploy key 2017-11-08 16:21:39 +00:00
logger.rb Memoize GitLab logger to reduce open file descriptors 2017-10-24 14:06:23 +03:00
mail_room.rb Decrease Cyclomatic Complexity threshold to 13 2017-09-12 17:02:11 +00:00
markup_helper.rb
metrics.rb
multi_collection_paginator.rb Remove the selects when counting the last page 2017-11-17 16:20:47 +01:00
optimistic_locking.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
other_markup.rb Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
otp_key_rotator.rb Added EachBatch for iterating tables in batches 2017-07-07 16:39:36 +02:00
pages.rb Add GitLab-Pages version to Admin Dashboard 2017-09-07 22:02:57 -05:00
pages_transfer.rb
path_regex.rb Speed up Unicorn specs by using a dummy Rack application instead of GitLab 2017-11-22 19:51:57 +00:00
performance_bar.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
polling_interval.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
popen.rb
project_search_results.rb fix for special charecter in file names 2017-11-30 09:57:58 +00:00
project_template.rb Update template description wording 2017-10-11 08:47:31 -07:00
project_transfer.rb
prometheus_client.rb
protocol_access.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
recaptcha.rb current_application_settings belongs on Gitlab::CurrentSettings 2017-08-31 13:38:33 +01:00
reference_counter.rb Implement /internal/post_receive unified endpoint for PostReceive tasks 2017-08-31 11:31:45 -03:00
reference_extractor.rb Refactor banzai to support referencing from group context 2017-12-06 19:16:22 +01:00
regex.rb Update container repository path reference 2017-11-16 09:31:07 +01:00
repo_path.rb
repository_check_logger.rb
request_context.rb
request_forgery_protection.rb Add log messages to clarify log messages about API CSRF token verification failure 2017-07-28 15:39:39 +02:00
request_profiler.rb
route_map.rb Merge branch '24570-use-re2-for-user-supplied-regexp-9-3' into 'security-9-3' 2017-07-19 22:28:41 -05:00
routing.rb Don't add a trailing slash in group redirects 2017-11-16 17:13:40 +00:00
search_results.rb Drastically improve project search performance by no longer searching namespace name 2017-11-24 15:57:17 +01:00
seeder.rb Don't disable the Rails mailer when seeding the test environment 2017-12-01 14:01:15 -06:00
sentry.rb Merge branch 'bvl-validate-po-files' into 'master' 2017-09-01 14:30:43 +00:00
shell.rb Fix the fork project functionality for projects with hashed storage 2017-12-04 09:42:14 +00:00
shell_adapter.rb Memoize GitlabShellAdapter for performance and ease of testing 2017-11-20 23:28:49 -08:00
sherlock.rb
sidekiq_config.rb Add ApplicationWorker and make every worker include it 2017-12-05 11:59:39 +01:00
sidekiq_logger.rb
sidekiq_status.rb Simplify check for running job on Redis 2017-10-13 10:17:41 +02:00
sidekiq_throttler.rb Only require sidekiq-limit_fetch when enabled in settings 2017-08-21 12:56:22 +01:00
snippet_search_results.rb
ssh_public_key.rb Address review comments 2017-08-30 20:50:44 +01:00
storage_check.rb Move the circuitbreaker check out in a separate process 2017-12-08 09:11:39 +01:00
string_range_marker.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
string_regex_marker.rb
themes.rb Revert "Merge branch 'revert-f2421b2b' into 'master'" 2017-09-11 15:44:42 +00:00
time_tracking_formatter.rb
timeless.rb
untrusted_regexp.rb Upgrade the re2 gem to 1.1.0 2017-07-24 11:03:37 +01:00
update_path_error.rb
upgrader.rb
uploads_transfer.rb
url_blocker.rb Merge branch 'ssrf-protections-round-2' into 'security-10-1' 2017-11-08 20:11:08 -08:00
url_builder.rb Don't reload ActiveRecord objects when building note URLs 2017-07-11 13:02:55 +01:00
url_sanitizer.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
usage_data.rb Allow password authentication to be disabled entirely 2017-11-23 13:16:14 +00:00
user_access.rb Fix tests and fine tweak permission error message 2017-07-19 22:37:38 +08:00
user_activities.rb Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
utils.rb Backport which from EE 2017-12-01 15:26:40 -08:00
version_info.rb
visibility_level.rb Adds Rubocop rule for line break after guard clause 2017-11-16 17:58:29 +01:00
workhorse.rb Remove Ci::Build#artifacts_file? 2017-12-03 12:04:49 +01:00