Actions
Bug #11620
closedLogger 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
Description
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)
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 ...
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Open to Feedback
What timezone are you using?
Updated by emrox (Stefan Bauckmeier) over 8 years ago
Local timezone is CET (Europe/Germany/Berlin)
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Tracker changed from Feature to Bug
- Project changed from 14 to Ruby master
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Feedback to Closed
Applied in changeset r52293.
logger.rb: fix weekly rotation
- lib/logger.rb (Logger::Period#next_rotate_time): get rid of
adding to mday not to exceed the days of the month.
[ruby-core:71185] [Bug #11620]
Actions
Like0
Like0Like0Like0Like0