Remove workaround by upgrading Fugit gem
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/58241 * Upgrade Fugit gem to 1.2.1 which recognizes cron expressions for invalid days * Reverted previously implemented workaround * Leave test case which previously exposed the bug
This commit is contained in:
parent
673ea5d2ac
commit
c75b8ad4da
2
Gemfile
2
Gemfile
|
|
@ -166,7 +166,7 @@ gem 'redis-namespace', '~> 1.6.0'
|
|||
gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
|
||||
|
||||
# Cron Parser
|
||||
gem 'fugit', '~> 1.1'
|
||||
gem 'fugit', '~> 1.2.1'
|
||||
|
||||
# HTTP requests
|
||||
gem 'httparty', '~> 0.16.4'
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ GEM
|
|||
equalizer (0.0.11)
|
||||
erubi (1.8.0)
|
||||
escape_utils (1.2.1)
|
||||
et-orbi (1.1.7)
|
||||
et-orbi (1.2.1)
|
||||
tzinfo
|
||||
eventmachine (1.2.7)
|
||||
excon (0.62.0)
|
||||
|
|
@ -264,8 +264,8 @@ GEM
|
|||
foreman (0.84.0)
|
||||
thor (~> 0.19.1)
|
||||
formatador (0.2.5)
|
||||
fugit (1.1.9)
|
||||
et-orbi (~> 1.1, >= 1.1.7)
|
||||
fugit (1.2.1)
|
||||
et-orbi (~> 1.1, >= 1.1.8)
|
||||
raabro (~> 1.1)
|
||||
fuubar (2.2.0)
|
||||
rspec-core (~> 3.0)
|
||||
|
|
@ -1056,7 +1056,7 @@ DEPENDENCIES
|
|||
fog-rackspace (~> 0.1.1)
|
||||
font-awesome-rails (~> 4.7)
|
||||
foreman (~> 0.84.0)
|
||||
fugit (~> 1.1)
|
||||
fugit (~> 1.2.1)
|
||||
fuubar (~> 2.2.0)
|
||||
gemojione (~> 3.3)
|
||||
gettext (~> 3.2.2)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ module Gitlab
|
|||
|
||||
def next_time_from(time)
|
||||
@cron_line ||= try_parse_cron(@cron, @cron_timezone)
|
||||
find_next_time(time) if @cron_line.present?
|
||||
@cron_line.next_time(time).utc.in_time_zone(Time.zone) if @cron_line.present?
|
||||
end
|
||||
|
||||
def cron_valid?
|
||||
|
|
@ -49,14 +49,6 @@ module Gitlab
|
|||
def try_parse_cron(cron, cron_timezone)
|
||||
Fugit::Cron.parse("#{cron} #{cron_timezone}")
|
||||
end
|
||||
|
||||
def find_next_time(time)
|
||||
@cron_line.next_time(time).utc.in_time_zone(Time.zone)
|
||||
rescue RuntimeError => error
|
||||
raise error unless error.message =~ /too many loops/
|
||||
# Fugit::Cron raises a RuntimeError if :next_time does not find the next schedule
|
||||
# given an invalid pattern - E.g. try_parse_cron('0 12 31 2 *')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -181,13 +181,6 @@ describe Gitlab::Ci::CronParser do
|
|||
|
||||
it { expect(subject).to be_nil }
|
||||
end
|
||||
|
||||
context 'when cron is scheduled to a non existent day' do
|
||||
let(:cron) { '0 12 31 2 *' }
|
||||
let(:cron_timezone) { 'UTC' }
|
||||
|
||||
it { expect(subject).to be_nil }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#cron_valid?' do
|
||||
|
|
|
|||
Loading…
Reference in New Issue