From 8c07184250166cd206c0e6a9f5cf686b7de8f65d Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 18 May 2017 16:20:16 +1000 Subject: Rescue OpenSSL::SSL::SSLError in JiraService and IssueTrackerService Add OpenSSL::SSL::SSLError to rescue in JiraService & IssueTrackerService. This will prevent an exception in production and instead display a message to the user. --- app/models/project_services/issue_tracker_service.rb | 2 +- app/models/project_services/jira_service.rb | 2 +- changelogs/unreleased/mrchrisw-catch-openssl.yml | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/mrchrisw-catch-openssl.yml diff --git a/app/models/project_services/issue_tracker_service.rb b/app/models/project_services/issue_tracker_service.rb index 50435b67eda..eddf308eae3 100644 --- a/app/models/project_services/issue_tracker_service.rb +++ b/app/models/project_services/issue_tracker_service.rb @@ -76,7 +76,7 @@ class IssueTrackerService < Service message = "#{self.type} received response #{response.code} when attempting to connect to #{self.project_url}" result = true end - rescue HTTParty::Error, Timeout::Error, SocketError, Errno::ECONNRESET, Errno::ECONNREFUSED => error + rescue HTTParty::Error, Timeout::Error, SocketError, Errno::ECONNRESET, Errno::ECONNREFUSED, OpenSSL::SSL::SSLError => error message = "#{self.type} had an error when trying to connect to #{self.project_url}: #{error.message}" end Rails.logger.info(message) diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index f388773efee..a91a986e195 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -294,7 +294,7 @@ class JiraService < IssueTrackerService def jira_request yield - rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, Errno::ECONNREFUSED, URI::InvalidURIError, JIRA::HTTPError => e + rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, Errno::ECONNREFUSED, URI::InvalidURIError, JIRA::HTTPError, OpenSSL::SSL::SSLError => e Rails.logger.info "#{self.class.name} Send message ERROR: #{url} - #{e.message}" nil end diff --git a/changelogs/unreleased/mrchrisw-catch-openssl.yml b/changelogs/unreleased/mrchrisw-catch-openssl.yml new file mode 100644 index 00000000000..a8b433fb0cd --- /dev/null +++ b/changelogs/unreleased/mrchrisw-catch-openssl.yml @@ -0,0 +1,4 @@ +--- +title: Rescue OpenSSL::SSL::SSLError in JiraService & IssueTrackerService +merge_request: +author: -- cgit v1.2.1