Skip to content

Fix crash when worker does not define #perform method#9

Merged
kidlab merged 2 commits intomasterfrom
fix/nil-method-owner
Nov 4, 2025
Merged

Fix crash when worker does not define #perform method#9
kidlab merged 2 commits intomasterfrom
fix/nil-method-owner

Conversation

@kidlab
Copy link
Copy Markdown

@kidlab kidlab commented Oct 31, 2025

Cloned from gohkhoonhiang#38

Problem

The /sidekiq_admin/adhoc-jobs/ endpoint will crash if one or more workers do not define #perform method. For example:

class DummyWorker
  include Sidekiq::Worker

  def perform(id)
  end
end

class DummyWorker2 < DummyWorker
end

Can verify in console by:

class_inspector = SidekiqAdhocJob::Utils::ClassInspector.new(DummyWorker2)
args = class_inspector.parameters(:perform)
NoMethodError: undefined method 'owner' for nil (NoMethodError)

        return method if method.owner == klass_name
                               ^^^^^^

We have to ugly workaround like this:

class DummyWorker2 < DummyWorker
  def perform(id)
    super(id)
  end
end

@kidlab kidlab self-assigned this Oct 31, 2025
@kidlab kidlab requested a review from swilgosz November 4, 2025 06:56
@kidlab kidlab merged commit abe1b43 into master Nov 4, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants