Commit c75b8ad4 authored by Fabio Pitino's avatar Fabio Pitino

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
parent 673ea5d2
...@@ -166,7 +166,7 @@ gem 'redis-namespace', '~> 1.6.0' ...@@ -166,7 +166,7 @@ gem 'redis-namespace', '~> 1.6.0'
gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch' gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
# Cron Parser # Cron Parser
gem 'fugit', '~> 1.1' gem 'fugit', '~> 1.2.1'
# HTTP requests # HTTP requests
gem 'httparty', '~> 0.16.4' gem 'httparty', '~> 0.16.4'
......
...@@ -190,7 +190,7 @@ GEM ...@@ -190,7 +190,7 @@ GEM
equalizer (0.0.11) equalizer (0.0.11)
erubi (1.8.0) erubi (1.8.0)
escape_utils (1.2.1) escape_utils (1.2.1)
et-orbi (1.1.7) et-orbi (1.2.1)
tzinfo tzinfo
eventmachine (1.2.7) eventmachine (1.2.7)
excon (0.62.0) excon (0.62.0)
...@@ -264,8 +264,8 @@ GEM ...@@ -264,8 +264,8 @@ GEM
foreman (0.84.0) foreman (0.84.0)
thor (~> 0.19.1) thor (~> 0.19.1)
formatador (0.2.5) formatador (0.2.5)
fugit (1.1.9) fugit (1.2.1)
et-orbi (~> 1.1, >= 1.1.7) et-orbi (~> 1.1, >= 1.1.8)
raabro (~> 1.1) raabro (~> 1.1)
fuubar (2.2.0) fuubar (2.2.0)
rspec-core (~> 3.0) rspec-core (~> 3.0)
...@@ -1056,7 +1056,7 @@ DEPENDENCIES ...@@ -1056,7 +1056,7 @@ DEPENDENCIES
fog-rackspace (~> 0.1.1) fog-rackspace (~> 0.1.1)
font-awesome-rails (~> 4.7) font-awesome-rails (~> 4.7)
foreman (~> 0.84.0) foreman (~> 0.84.0)
fugit (~> 1.1) fugit (~> 1.2.1)
fuubar (~> 2.2.0) fuubar (~> 2.2.0)
gemojione (~> 3.3) gemojione (~> 3.3)
gettext (~> 3.2.2) gettext (~> 3.2.2)
......
...@@ -13,7 +13,7 @@ module Gitlab ...@@ -13,7 +13,7 @@ module Gitlab
def next_time_from(time) def next_time_from(time)
@cron_line ||= try_parse_cron(@cron, @cron_timezone) @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 end
def cron_valid? def cron_valid?
...@@ -49,14 +49,6 @@ module Gitlab ...@@ -49,14 +49,6 @@ module Gitlab
def try_parse_cron(cron, cron_timezone) def try_parse_cron(cron, cron_timezone)
Fugit::Cron.parse("#{cron} #{cron_timezone}") Fugit::Cron.parse("#{cron} #{cron_timezone}")
end 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 end
end end
...@@ -181,13 +181,6 @@ describe Gitlab::Ci::CronParser do ...@@ -181,13 +181,6 @@ describe Gitlab::Ci::CronParser do
it { expect(subject).to be_nil } it { expect(subject).to be_nil }
end 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 end
describe '#cron_valid?' do describe '#cron_valid?' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment