sidekiq 5.2.6 → 5.2.10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c00fe1c531a83e485baf72c933ffa4e5841efcd704dc923fae95b08972e55171
4
- data.tar.gz: 51873d59ae47326fd6fb49171cb1035e631f71ab82041983dd05c0dc9e605c61
3
+ metadata.gz: 22b205223a123bbe3a8812f1e2804be148afb5fe91c201ecb9a073eb4a188a06
4
+ data.tar.gz: '08ab2999267df91afb8f62b9a6b00810299791cad99763d5b16f70bda946410a'
5
5
  SHA512:
6
- metadata.gz: f039667c1604ff64c6cca3213d17ec1cc5fb0ed98c4a5004a744f29c12028d8db54d0e5c84d9dbb924dad496e3eb09702813e1a58433c55bcbed9ad2e3072a61
7
- data.tar.gz: b03aff3f1024df4797cda4b58928b77998542a5250886def98be561368e736fded5559cd545d5ca64fbe11fd2604975b9494a2b9181fa465e77544922ebee7a4
6
+ metadata.gz: ad90b8ed3b060ce4521326a0dd4173550ee6bf64b0674fc08fbf37770aaec5ca0ea82738ed1730ccfcff4e0b616afcc47789ca8610cdd41a20abc0ef7d734891
7
+ data.tar.gz: 2ed367f9801d28616a1b56b0b209cfe797c2b5a137d2e67cfb8c6864c8d5ed8f58992924ddce654f1fec53b84a5f18abdf88d4df45373b98f46786d511bac3f2
@@ -0,0 +1,61 @@
1
+ version: 2
2
+ references:
3
+ unit: &unit
4
+ run:
5
+ name: Run test suite
6
+ command: bundle exec rake
7
+ restore: &restore
8
+ restore_cache:
9
+ keys:
10
+ - v1-dependencies-{{ checksum "Gemfile.lock" }}
11
+ # fallback to using the latest cache if no exact match is found
12
+ - v1-dependencies-
13
+ bundle: &bundle
14
+ run:
15
+ name: install dependencies
16
+ command: |
17
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
18
+ save: &save
19
+ save_cache:
20
+ paths:
21
+ - ./vendor/bundle
22
+ key: v1-dependencies-{{ checksum "Gemfile.lock" }}
23
+ jobs:
24
+ "ruby-2.5":
25
+ docker:
26
+ - image: circleci/ruby:2.5
27
+ - image: circleci/redis:4.0
28
+ steps:
29
+ - checkout
30
+ - <<: *restore
31
+ - <<: *bundle
32
+ - <<: *save
33
+ - <<: *unit
34
+ "ruby-2.6":
35
+ docker:
36
+ - image: circleci/ruby:2.6
37
+ - image: circleci/redis:4.0
38
+ steps:
39
+ - checkout
40
+ - <<: *restore
41
+ - <<: *bundle
42
+ - <<: *save
43
+ - <<: *unit
44
+ "jruby":
45
+ docker:
46
+ - image: circleci/jruby:latest
47
+ - image: circleci/redis:4.0
48
+ steps:
49
+ - checkout
50
+ - <<: *restore
51
+ - <<: *bundle
52
+ - <<: *save
53
+ - <<: *unit
54
+
55
+ workflows:
56
+ version: 2
57
+ build:
58
+ jobs:
59
+ - "ruby-2.5"
60
+ - "ruby-2.6"
61
+ - "jruby"
data/Changes.md CHANGED
@@ -2,12 +2,38 @@
2
2
 
3
3
  [Sidekiq Changes](https://github.com/mperham/sidekiq/blob/master/Changes.md) | [Sidekiq Pro Changes](https://github.com/mperham/sidekiq/blob/master/Pro-Changes.md) | [Sidekiq Enterprise Changes](https://github.com/mperham/sidekiq/blob/master/Ent-Changes.md)
4
4
 
5
+ 5.2.10
6
+ ---------
7
+
8
+ - Backport fix for CVE-2022-23837.
9
+ - Migrate to `exists?` for redis-rb.
10
+ - Lock redis-rb to <4.6 to avoid deprecations.
11
+
12
+ 5.2.9
13
+ ---------
14
+
15
+ - Release Rack lock due to a cascade of CVEs. [#4566]
16
+ Pro-tip: don't lock Rack.
17
+
18
+ 5.2.8
19
+ ---------
20
+
21
+ - Lock to Rack 2.0.x to prevent future incompatibilities
22
+ - Fix invalid reference in `sidekiqctl`
23
+
24
+ 5.2.7
25
+ ---------
26
+
27
+ - Fix stale `enqueued_at` when retrying [#4149]
28
+ - Move build to [Circle CI](https://circleci.com/gh/mperham/sidekiq) [#4120]
29
+
5
30
  5.2.6
6
31
  ---------
7
32
 
8
33
  - Fix edge case where a job failure during Redis outage could result in a lost job [#4141]
9
34
  - Better handling of malformed job arguments in payload [#4095]
10
35
  - Restore bootstap's dropdown css component [#4099, urkle]
36
+ - Display human-friendly time diff for longer queue latencies [#4111, interlinked]
11
37
  - Allow `Sidekiq::Worker#set` to be chained
12
38
 
13
39
  5.2.5
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ gemspec
5
5
  gem 'rake'
6
6
  gem 'redis-namespace'
7
7
  gem 'rails', '~> 5.2'
8
- gem 'sqlite3', '~> 1.3.6', platforms: :ruby
8
+ gem 'sqlite3', platforms: :ruby
9
9
  gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
10
10
 
11
11
  group :test do
@@ -13,10 +13,6 @@ group :test do
13
13
  gem 'simplecov'
14
14
  end
15
15
 
16
- group :development, :test do
17
- gem 'pry-byebug', platforms: :mri
18
- end
19
-
20
16
  group :load_test do
21
17
  gem 'hiredis'
22
18
  gem 'toxiproxy'
data/README.md CHANGED
@@ -3,7 +3,7 @@ Sidekiq
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/sidekiq.svg)](https://rubygems.org/gems/sidekiq)
5
5
  [![Code Climate](https://codeclimate.com/github/mperham/sidekiq.svg)](https://codeclimate.com/github/mperham/sidekiq)
6
- [![Build Status](https://travis-ci.org/mperham/sidekiq.svg)](https://travis-ci.org/mperham/sidekiq)
6
+ [![Build Status](https://circleci.com/gh/mperham/sidekiq/tree/master.svg?style=svg)](https://circleci.com/gh/mperham/sidekiq/tree/master)
7
7
  [![Gitter Chat](https://badges.gitter.im/mperham/sidekiq.svg)](https://gitter.im/mperham/sidekiq)
8
8
 
9
9
 
data/lib/sidekiq/api.rb CHANGED
@@ -164,6 +164,8 @@ module Sidekiq
164
164
 
165
165
  class History
166
166
  def initialize(days_previous, start_date = nil)
167
+ #we only store five years of data in Redis
168
+ raise ArgumentError if days_previous < 1 || days_previous > (5 * 365)
167
169
  @days_previous = days_previous
168
170
  @start_date = start_date || Time.now.utc.to_date
169
171
  end
@@ -904,7 +906,7 @@ module Sidekiq
904
906
  procs = sscan(conn, 'processes')
905
907
  procs.sort.each do |key|
906
908
  valid, workers = conn.pipelined do
907
- conn.exists(key)
909
+ conn.exists?(key)
908
910
  conn.hgetall("#{key}:workers")
909
911
  end
910
912
  next unless valid
@@ -198,7 +198,7 @@ module Sidekiq
198
198
  q = payloads.first['queue']
199
199
  now = Time.now.to_f
200
200
  to_push = payloads.map do |entry|
201
- entry['enqueued_at'] ||= now
201
+ entry['enqueued_at'] = now
202
202
  Sidekiq.dump_json(entry)
203
203
  end
204
204
  conn.sadd('queues', q)
data/lib/sidekiq/ctl.rb CHANGED
@@ -18,10 +18,10 @@ class Sidekiq::Ctl
18
18
  puts
19
19
  puts " <pidfile> is path to a pidfile"
20
20
  puts " <kill_timeout> is number of seconds to wait until Sidekiq exits"
21
- puts " (default: #{Sidekiqctl::DEFAULT_KILL_TIMEOUT}), after which Sidekiq will be KILL'd"
21
+ puts " (default: #{Sidekiq::Ctl::DEFAULT_KILL_TIMEOUT}), after which Sidekiq will be KILL'd"
22
22
  puts
23
23
  puts " <section> (optional) view a specific section of the status output"
24
- puts " Valid sections are: #{Sidekiqctl::Status::VALID_SECTIONS.join(', ')}"
24
+ puts " Valid sections are: #{Sidekiq::Ctl::Status::VALID_SECTIONS.join(', ')}"
25
25
  puts
26
26
  puts "Be sure to set the kill_timeout LONGER than Sidekiq's -t timeout. If you want"
27
27
  puts "to wait 60 seconds for jobs to finish, use `sidekiq -t 60` and `sidekiqctl stop"
@@ -102,7 +102,7 @@ module Sidekiq
102
102
  _, exists, _, _, msg = Sidekiq.redis do |conn|
103
103
  conn.multi do
104
104
  conn.sadd('processes', key)
105
- conn.exists(key)
105
+ conn.exists?(key)
106
106
  conn.hmset(key, 'info', to_json, 'busy', curstate.size, 'beat', Time.now.to_f, 'quiet', @done)
107
107
  conn.expire(key, 60)
108
108
  conn.rpop("#{key}-signals")
@@ -7,7 +7,7 @@ module Sidekiq
7
7
  def initialize
8
8
  # With Rails 5+ we must use the Reloader **always**.
9
9
  # The reloader handles code loading and db connection management.
10
- if defined?(::Rails) && ::Rails::VERSION::MAJOR >= 5
10
+ if defined?(::Rails) && defined?(::Rails::VERSION) && ::Rails::VERSION::MAJOR >= 5
11
11
  raise ArgumentError, "Rails 5 no longer needs or uses the ActiveRecord middleware."
12
12
  end
13
13
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Sidekiq
3
- VERSION = "5.2.6"
3
+ VERSION = "5.2.10"
4
4
  end
@@ -15,7 +15,7 @@ module Sidekiq
15
15
  end
16
16
 
17
17
  def halt(res)
18
- throw :halt, res
18
+ throw :halt, [res, {"Content-Type" => "text/plain"}, [res.to_s]]
19
19
  end
20
20
 
21
21
  def redirect(location)
@@ -45,7 +45,10 @@ module Sidekiq
45
45
 
46
46
  get "/" do
47
47
  @redis_info = redis_info.select{ |k, v| REDIS_KEYS.include? k }
48
- stats_history = Sidekiq::Stats::History.new((params['days'] || 30).to_i)
48
+ days = (params["days"] || 30).to_i
49
+ return halt(401) if days < 1 || days > 180
50
+
51
+ stats_history = Sidekiq::Stats::History.new(days)
49
52
  @processed_history = stats_history.processed
50
53
  @failed_history = stats_history.failed
51
54
 
data/sidekiq.gemspec CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |gem|
14
14
  gem.version = Sidekiq::VERSION
15
15
  gem.required_ruby_version = ">= 2.2.2"
16
16
 
17
- gem.add_dependency 'redis', '>= 3.3.5', '< 5'
17
+ gem.add_dependency "redis", "~> 4.5", "< 4.6.0"
18
18
  gem.add_dependency 'connection_pool', '~> 2.2', '>= 2.2.2'
19
- gem.add_dependency 'rack', '>= 1.5.0'
19
+ gem.add_dependency 'rack', '~> 2.0'
20
20
  gem.add_dependency 'rack-protection', '>= 1.5.0'
21
21
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6
4
+ version: 5.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-12 00:00:00.000000000 Z
11
+ date: 2022-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.3.5
19
+ version: '4.5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5'
22
+ version: 4.6.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 3.3.5
29
+ version: '4.5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5'
32
+ version: 4.6.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: connection_pool
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -54,16 +54,16 @@ dependencies:
54
54
  name: rack
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ">="
57
+ - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 1.5.0
59
+ version: '2.0'
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ">="
64
+ - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 1.5.0
66
+ version: '2.0'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: rack-protection
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +87,7 @@ executables:
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".circleci/config.yml"
90
91
  - ".github/contributing.md"
91
92
  - ".github/issue_template.md"
92
93
  - ".gitignore"
@@ -207,7 +208,7 @@ homepage: http://sidekiq.org
207
208
  licenses:
208
209
  - LGPL-3.0
209
210
  metadata: {}
210
- post_install_message:
211
+ post_install_message:
211
212
  rdoc_options: []
212
213
  require_paths:
213
214
  - lib
@@ -222,8 +223,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
223
  - !ruby/object:Gem::Version
223
224
  version: '0'
224
225
  requirements: []
225
- rubygems_version: 3.0.1
226
- signing_key:
226
+ rubygems_version: 3.2.32
227
+ signing_key:
227
228
  specification_version: 4
228
229
  summary: Simple, efficient background processing for Ruby
229
230
  test_files: []