Issue #11620 has been updated by Nobuyoshi Nakada.

Tracker changed from Feature to Bug
Project changed from CommonRuby to Ruby trunk

----------------------------------------
Bug #11620: Logger throws "ArgumentError: argument out of range" with weekly rotation when switch to standard time (DST) and last day of the week is 1st of next month
https://bugs.ruby-lang.org/issues/11620#change-54579

* Author: Stefan Bauckmeier
* Status: Feedback
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 
----------------------------------------
We discovered a bug within the Ruby Logger. Having 'weekly' as Argument for shift_age in this year (2015) when returned from summer time to standard time (DST).
Creating a new Logger results in throwing a "ArgumentError: argument out of range" Exception.
The bug affects this year because the last day of week (Sunday) is not within this month (it's the 1st of November)

```ruby
require 'timecop'

Timecop.freeze(2015,10,24,13,37)
Logger.new('test','weekly')
# => #<Logger:0x007fe269c3a048 ...

Timecop.freeze(2015,10,25,13,37)
Logger.new('test','weekly')
# ArgumentError: argument out of range
#	from /Users/stefan/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/logger.rb:547:in `mktime'
#	from /Users/stefan/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/logger.rb:547:in `next_rotate_time'
#	from /Users/stefan/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/logger.rb:589:in `initialize'
#	from /Users/stefan/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/logger.rb:318:in `new'
#	from /Users/stefan/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/logger.rb:318:in `initialize'
#	from (irb):7:in `new'
#	from (irb):7
#      ...

Timecop.freeze(2015,10,26,13,37)
Logger.new('test','weekly')
# => #<Logger:0x007fe27046e470 ...
```



-- 
https://bugs.ruby-lang.org/