Skip to content

Using JSON.parse in delete_by_value_ext break compatiblity with other Sidekiq extensions #220

@dammer

Description

@dammer

We use gem sidekiq-marshal. It overrides the methods Sidekiq.load_json and Sidekiq.load_json in order to encode tasks in the format of the ruby Marshal.dump.

Using JSON.parse instead of Sidekiq.load_json here break compatibility with other Sidekiq extensions.

irb(main):001:0> ds = Sidekiq::DeadSet.new
=> #<Sidekiq::DeadSet:0x007ff0fa7edf90 @name="dead", @_size=2306>
irb(main):002:0> ds.size
=> 2306
irb(main):003:0> ds.clear
JSON::ParserError: 784: unexpected token at '{�I"
class�:�ETI"SkBuyData�;'
	from /skipped/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
	from /skipped/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
	from /skipped/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.18/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb:145:in `delete_by_value_ext'
	from /skipped/ruby/2.2.0/gems/sidekiq-4.2.9/lib/sidekiq/api.rb:400:in `delete'
	from /skipped/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.18/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb:17:in `delete_ext'
	from /skipped/ruby/2.2.0/gems/sidekiq-4.2.9/lib/sidekiq/api.rb:527:in `block in each'
	from /skipped/ruby/2.2.0/gems/sidekiq-4.2.9/lib/sidekiq/api.rb:526:in `each'
	from /skipped/ruby/2.2.0/gems/sidekiq-4.2.9/lib/sidekiq/api.rb:526:in `each'
	from /skipped/ruby/2.2.0/gems/sidekiq-unique-jobs-4.0.18/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb:140:in `clear_ext'
	from (skipped
	from /skipped/ruby/2.2.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:110:in `start'
	from /skipped/ruby/2.2.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:9:in `start'
	from /skipped/ruby/2.2.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:68:in `console'
	from /skipped/ruby/2.2.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
	from /skipped/ruby/2.2.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in `<top (required)>'
	from bin/rails:4:in `require'
	from bin/rails:4:in `<main>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions