RuntimeError: too many loops for "0 12 31 2 * Etc/UTC" #next_time, breaking

https://sentry.gitlab.net/gitlab/gitlabcom/issues/663479/

RuntimeError: too many loops for "0 12 31 2 * Etc/UTC" #next_time, breaking
  fugit/cron.rb:197:in `block in next_time'
    fail RuntimeError.new(
  fugit/cron.rb:186:in `loop'
    loop do
  fugit/cron.rb:186:in `next_time'
    loop do
  gitlab/ci/cron_parser.rb:16:in `next_time_from'
    @cron_line.next_time(time).utc.in_time_zone(Time.zone) if @cron_line.present?
  ci/pipeline_schedule.rb:47:in `set_next_run_at'
    self.next_run_at = Gitlab::Ci::CronParser.new(cron, cron_timezone).next_time_from(Time.now)
...
(203 additional frame(s) were not displayed)

RuntimeError: too many loops for "0 12 31 2 * Etc/UTC" #next_time, breaking