From 9f65ffc4b5fe615d2e0db2985d395047f95a1ef4 Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Thu, 5 Oct 2023 11:39:45 +0100 Subject: [PATCH] Update sentry-sidekiq for Sidekiq 7.1.5 In https://github.com/sidekiq/sidekiq/pull/6051, Sidekiq changed the expected parameters on the error handler. However, because it assumes error handler to be a Proc, it uses `#arity` for checking the number of parameters. This is not compatible with our error handler, which is a class. --- sentry-sidekiq/Gemfile | 4 +++- sentry-sidekiq/lib/sentry/sidekiq/error_handler.rb | 4 ++++ .../spec/sentry/sidekiq/sentry_context_middleware_spec.rb | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sentry-sidekiq/Gemfile b/sentry-sidekiq/Gemfile index 692fae02d..c71932a2b 100644 --- a/sentry-sidekiq/Gemfile +++ b/sentry-sidekiq/Gemfile @@ -16,11 +16,13 @@ gem "rexml" gem "loofah", "2.20.0" if RUBY_VERSION.to_f < 2.5 sidekiq_version = ENV["SIDEKIQ_VERSION"] -sidekiq_version = "6.0" if sidekiq_version.nil? +sidekiq_version = "7.0" if sidekiq_version.nil? gem "sidekiq", "~> #{sidekiq_version}" gem "rails" +gem "ruby-lsp-rspec" + if RUBY_VERSION.to_f >= 2.6 gem "debug", github: "ruby/debug", platform: :ruby gem "irb" diff --git a/sentry-sidekiq/lib/sentry/sidekiq/error_handler.rb b/sentry-sidekiq/lib/sentry/sidekiq/error_handler.rb index e99dc2b83..fcc892f62 100644 --- a/sentry-sidekiq/lib/sentry/sidekiq/error_handler.rb +++ b/sentry-sidekiq/lib/sentry/sidekiq/error_handler.rb @@ -29,6 +29,10 @@ def call(ex, context) scope&.clear end + def arity + method(:call).arity + end + private def retryable?(context) diff --git a/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb b/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb index 4a8542291..6212a8fe9 100644 --- a/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb +++ b/sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb @@ -140,11 +140,11 @@ q = queue.to_a expect(q.size).to be(2) - first_headers = q.first["trace_propagation_headers"] + first_headers = q[0]["trace_propagation_headers"] expect(first_headers["sentry-trace"]).to eq(transaction.to_sentry_trace) expect(first_headers["baggage"]).to eq(transaction.to_baggage) - second_headers = q.second["trace_propagation_headers"] + second_headers = q[1]["trace_propagation_headers"] expect(second_headers["sentry-trace"]).to eq(transaction.to_sentry_trace) expect(second_headers["baggage"]).to eq(transaction.to_baggage) end