diff options
author | Alex Lossent <alexandre.lossent@cern.ch> | 2017-07-27 14:52:42 +0200 |
---|---|---|
committer | Alex Lossent <alexandre.lossent@cern.ch> | 2017-07-27 15:02:25 +0200 |
commit | a94e91a45b8fb861060a901b5bcfa218d597a208 (patch) | |
tree | 9355bbf89f3e994dd59996f2d4021fa5163afa86 | |
parent | 4eebd8e1957a3fc3a3479331fde9f34aa8afa9d5 (diff) | |
download | gitlab-ce-a94e91a45b8fb861060a901b5bcfa218d597a208.tar.gz |
Log web hook execution timeout events
If a web hook HTTP request is sent but no response comes
within a certain time (10s by default), the hook execution fails
and will be retried. This commit makes such timeouts visible
in the web hook log, like connection timeouts already are.
Also log "no route to host" errors.
-rw-r--r-- | app/services/web_hook_service.rb | 2 | ||||
-rw-r--r-- | spec/services/web_hook_service_spec.rb | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/app/services/web_hook_service.rb b/app/services/web_hook_service.rb index a5110a23cad..27c3ba197ac 100644 --- a/app/services/web_hook_service.rb +++ b/app/services/web_hook_service.rb @@ -44,7 +44,7 @@ class WebHookService http_status: response.code, message: response.to_s } - rescue SocketError, OpenSSL::SSL::SSLError, Errno::ECONNRESET, Errno::ECONNREFUSED, Net::OpenTimeout => e + rescue SocketError, OpenSSL::SSL::SSLError, Errno::ECONNRESET, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Net::OpenTimeout, Net::ReadTimeout => e log_execution( trigger: hook_name, url: hook.url, diff --git a/spec/services/web_hook_service_spec.rb b/spec/services/web_hook_service_spec.rb index 7ff37c22963..76f35443e55 100644 --- a/spec/services/web_hook_service_spec.rb +++ b/spec/services/web_hook_service_spec.rb @@ -53,7 +53,7 @@ describe WebHookService, services: true do end it 'handles exceptions' do - exceptions = [SocketError, OpenSSL::SSL::SSLError, Errno::ECONNRESET, Errno::ECONNREFUSED, Net::OpenTimeout] + exceptions = [SocketError, OpenSSL::SSL::SSLError, Errno::ECONNRESET, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Net::OpenTimeout, Net::ReadTimeout] exceptions.each do |exception_class| exception = exception_class.new('Exception message') |