Skip to content

Fix JIRA::HTTPError initialize parameter

Arturo Herrero requested to merge 198411-jira-http-error into master

What does this MR do?

This is a follow-up from #198411 (closed).

Now we have a more verbose JIRA error logs !23688 (merged) and started to have some logs in Kibana but we still see logs where the exception_message is empty. This is one example:

{
  "exception_class": "JIRA::HTTPError"
  "exception_message": "",
  "exception_backtrace": "
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/jira/http_client.rb:15:in `request'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/jira-ruby-1.7.1/lib/jira/client.rb:242:in `request'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/jira-ruby-1.7.1/lib/jira/client.rb:220:in `get'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/jira-ruby-1.7.1/lib/jira/resource/issue.rb:95:in `fetch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/jira-ruby-1.7.1/lib/jira/base.rb:107:in `find'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/jira-ruby-1.7.1/lib/jira/base_factory.rb:31:in `block (2 levels) in delegate_to_target_class'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/project_services/jira_service.rb:167:in `block in create_cross_reference_note'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/project_services/jira_service.rb:348:in `jira_request'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:161:in `block in jira_request'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/method_call.rb:36:in `measure'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:161:in `jira_request'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/project_services/jira_service.rb:167:in `create_cross_reference_note'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:161:in `block in create_cross_reference_note'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/method_call.rb:36:in `measure'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:161:in `create_cross_reference_note'
    /opt/gitlab/embedded/service/gitlab-rails/app/services/system_notes/issuables_service.rb:131:in `cross_reference'
    /opt/gitlab/embedded/service/gitlab-rails/app/services/system_note_service.rb:206:in `cross_reference'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/mentionable.rb:183:in `block in create_cross_references!'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/mentionable.rb:182:in `each'
    /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/mentionable.rb:182:in `create_cross_references!'
    /opt/gitlab/embedded/service/gitlab-rails/app/workers/process_commit_worker.rb:46:in `process_commit_message'
    /opt/gitlab/embedded/service/gitlab-rails/app/workers/process_commit_worker.rb:35:in `perform'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sidekiq_middleware.rb:15:in `block in call'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/transaction.rb:62:in `run'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sidekiq_middleware.rb:15:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/worker_context/server.rb:20:in `wrap_in_optional_context'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/worker_context/server.rb:14:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_status/server_middleware.rb:7:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:7:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/gitlab-labkit-0.9.1/lib/labkit/middleware/sidekiq/server.rb:13:in `block in call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/gitlab-labkit-0.9.1/lib/labkit/context.rb:31:in `with_context'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/gitlab-labkit-0.9.1/lib/labkit/middleware/sidekiq/server.rb:12:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/batch_loader.rb:7:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/request_store_middleware.rb:8:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/memory_killer.rb:20:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/server_metrics.rb:31:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/monitor.rb:8:in `block in call'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_daemon/monitor.rb:49:in `within_job'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/monitor.rb:7:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/marginalia-1.8.0/lib/marginalia/sidekiq_instrumentation.rb:10:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sentry-raven-2.9.0/lib/raven/integrations/sidekiq.rb:9:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:87:in `wrap'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/reloader.rb:73:in `block in wrap'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:87:in `wrap'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/reloader.rb:72:in `wrap'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
    /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_logging/structured_logger.rb:18:in `call'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
    /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'
  "
}

The problem is that JIRA::HTTPError should be initialized with a Net::HTTPResponse object that responds to message 567ede89.

Reference: https://github.com/sumoheavy/jira-ruby/blob/v1.7.1/lib/jira/http_error.rb

cc. @nhxnguyen

Merge request reports