expires_at is stored as a database datetime column
- Dominant language
- Ruby
- Stars
- 700
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
### Context
During the DST to standard time change, when the SQL server is running in a local time zone, records cannot be found when `expires_at` is set to 1 hour.
Given a PST time and a fallback to standard time at 2 AM, 1 hour from 1 AM, is going to be still 1 AM. The date s converted to the same date that was entered and few seconds after the record cannot be found again.
The `expires_at` column should be timezone agnostic, possible solution would be to store it as an integer (epoch time),
Contributor guide
Research direction
Start at the model or schema definition for expires_at and ActiveRecord's datetime conversion, then reproduce the DST fallback with the SQL server in a local timezone. Done means expiration remains findable across the fallback, with timezone-agnostic storage and regression coverage agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100