so the app at dayjob has an internal scheduler, one of the formats for which handles, like, "on the 12th at 8am" tests for it were failing intermittently, in daily CI job only i'm curious if there are any devs out there whose trauma runs deep enough they already know the story
-
Show this thread
-
i'll throw out some more hints while i wait, i suppose the test suite was taking a pretty spotty approach heavily keyed to the present date and time reworking it to be somewhat more deterministic made the tests fail more consistently, but still only in CI
3 replies 0 retweets 12 likesShow this thread -
we have several people correct on the general tip of time zones, but we could go much deeper another hint: the increased determinism in the test suite rebuild made it hit every day of the year, but it still used the current time for the "8am" part of the schedule specification
4 replies 0 retweets 9 likesShow this thread -
last hint: against all appearance and expectation, the unexpected behavior was not a failure of the test suite, it was actually a success of the test suite
2 replies 0 retweets 11 likesShow this thread -
okay, so here we go every day has a 2 AM, right? wrong. on, for example, March 14th, 2021, 2 AM Eastern time *will not exist* so if you specified "on the 14th at 2am", the scheduled job would *correctly* not run in March of 2021
6 replies 1 retweet 21 likesShow this thread -
Replying to @chaosprime
Because at 2am, Daylight Saving kicks in and they just fucking skip the whole hour. Expected behavior? Disallow selection of non-existent times? Or shift the selected time forward by an hour?
1 reply 0 retweets 2 likes -
Replying to @verinaut
it'd basically work fine if the "should i run" check checked >= instead of == it records when it actually last ran the thing so it's not gonna run it too many times or anything would incidentally make the system more resilient to outages
2 replies 0 retweets 3 likes
daily and weekly schedules potentially have the same issue so it's not wasted effort i guess
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.