Bob Van Landuyt
705c15d7af
Allow enabling the circuitbreaker using an env variable
...
That way we can enable the circuitbreaker for just one host at a time.
2017-10-23 13:53:49 +03:00
Bob Van Landuyt
591ee4e361
Perform the stat check multiple times when checking a storage
...
Instead of only checking once within a timeout, check multiple times
within a timeout.
That means with a timeout of 30 seconds and 3 retries. Each try would
be allowed 20 seconds.
2017-10-23 13:53:49 +03:00
Bob Van Landuyt
430e767139
Implement backoff for the circuitbreaker
...
The circuitbreaker now has 2 failure modes:
- Backing off: This will raise the `Gitlab::Git::Storage::Failing`
exception. Access to the shard is blocked temporarily.
- Circuit broken: This will raise the
`Gitlab::Git::Storage::CircuitBroken` exception. Access to the shard
will be blocked until the failures are reset.
2017-10-23 12:02:23 +03:00
Rémy Coutable
89f5ede2a3
Merge branch 'bvl-do-not-use-redis-keys' into 'master'
...
Avoid using `Redis#keys`
See merge request gitlab-org/gitlab-ce!14889
2017-10-17 16:15:44 +00:00
Bob Van Landuyt
c365dea887
Don't use Redis#keys
in the circuitbreaker
2017-10-17 12:47:20 +02:00
Bob Van Landuyt
619021fd7a
Read circuitbreaker settings from Gitlab::CurrentSettings
...
Instead of from the configuration file
2017-10-17 11:50:32 +02:00
Nick Thomas
ba0ebbb510
Allow the git circuit breaker to correctly handle missing repository storages
2017-09-22 10:05:28 +01:00
Bob Van Landuyt
4b34720c0c
Use ruby's File.stat
to check storage availability
2017-08-04 15:38:50 +02:00
Bob Van Landuyt
3a2aaed881
Use a Struct to keep track of failure info
2017-08-04 15:38:50 +02:00
Bob Van Landuyt
0dd4c306ca
Only track accessibility once
2017-08-04 15:38:50 +02:00
Bob Van Landuyt
022c38e63e
Use keys
instead of scan_each
2017-08-04 15:38:49 +02:00
Bob Van Landuyt
3899d07f9e
Move hostname to Gitlab::Environment
2017-08-04 15:38:49 +02:00
Bob Van Landuyt
0fa94a0ddd
Make sure the check works for paths with spaces.
2017-08-04 15:38:49 +02:00
Bob Van Landuyt
3598e60bf2
Add a Circuitbreaker for storage paths
2017-08-04 15:38:48 +02:00