{"action":"created","issue":{"url":"https://api.github.com/repos/quartznet/quartznet/issues/332","repository_url":"https://api.github.com/repos/quartznet/quartznet","labels_url":"https://api.github.com/repos/quartznet/quartznet/issues/332/labels{/name}","comments_url":"https://api.github.com/repos/quartznet/quartznet/issues/332/comments","events_url":"https://api.github.com/repos/quartznet/quartznet/issues/332/events","html_url":"https://github.com/quartznet/quartznet/issues/332","id":140855542,"number":332,"title":"Trigger loop encountered using DailyTimeIntervalTrigger across DST start boundary","user":{"login":"dandufeu","id":10837954,"avatar_url":"https://avatars0.githubusercontent.com/u/10837954?v=3","gravatar_id":"","url":"https://api.github.com/users/dandufeu","html_url":"https://github.com/dandufeu","followers_url":"https://api.github.com/users/dandufeu/followers","following_url":"https://api.github.com/users/dandufeu/following{/other_user}","gists_url":"https://api.github.com/users/dandufeu/gists{/gist_id}","starred_url":"https://api.github.com/users/dandufeu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dandufeu/subscriptions","organizations_url":"https://api.github.com/users/dandufeu/orgs","repos_url":"https://api.github.com/users/dandufeu/repos","events_url":"https://api.github.com/users/dandufeu/events{/privacy}","received_events_url":"https://api.github.com/users/dandufeu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-03-15T02:46:58Z","updated_at":"2017-03-13T12:17:29Z","closed_at":null,"body":"I encountered an issue that just occurred on the last Daylight Savings Time (DST) change on March 12, 2016.  I'm using a DailyTimeIntervalTrigger that was set to fire before, during and after the DST change. The triggers are set to run in various time zones (according to location). It appears that about an **hour** after the DST change, the trigger keeps firing without pause (like it is in an infinite loop).\n\nA simplified version of the code I'm using for the trigger is as follows:\n\n``` c#\nTimeZoneInfo tz = TimeZoneInfo.Local;\nITrigger trigger = TriggerBuilder.Create()\n    .WithIdentity(\"MyJob\")\n    .WithDailyTimeIntervalSchedule(\n        x => x.WithIntervalInMinutes(5)\n            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0)) \n            .EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(23, 59))\n            .OnDaysOfTheWeek(new DayOfWeek[] { DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday })\n            .InTimeZone(tz)\n).Build();\n```\n\nI've Attached a sample project [QuartzTest.zip](https://github.com/quartznet/quartznet/files/173131/QuartzTest.zip)\nIf you set your clock to ~30 minutes before the DST start, and run it, you find that the program enters a tight loop of triggers an hour after DST changes. \n\nI put in some debug code in the test sample that prints out the result of ComputeFireTimes. I noticed that there was repetition after the DST start (I'm in Pacific Time, so DST start is at 10 AM UTC). I'm pretty sure that the repetition in the computation is the part of the problem. I haven't been able to investigate further yet. I'm testing with the 2.3.3 stable.\n\n> 3/13/2016 9:35:00 AM +00:00\n> 3/13/2016 9:40:00 AM +00:00\n> 3/13/2016 9:45:00 AM +00:00\n> 3/13/2016 9:50:00 AM +00:00\n> 3/13/2016 9:55:00 AM +00:00\n> 3/13/2016 10:00:00 AM +00:00\n> 3/13/2016 10:05:00 AM +00:00\n> 3/13/2016 10:10:00 AM +00:00\n> 3/13/2016 10:15:00 AM +00:00\n> 3/13/2016 10:20:00 AM +00:00\n> 3/13/2016 10:25:00 AM +00:00\n> 3/13/2016 10:30:00 AM +00:00\n> 3/13/2016 10:35:00 AM +00:00\n> 3/13/2016 10:40:00 AM +00:00\n> 3/13/2016 10:45:00 AM +00:00\n> 3/13/2016 10:50:00 AM +00:00\n> 3/13/2016 10:55:00 AM +00:00\n> 3/13/2016 10:00:00 AM +00:00\n> 3/13/2016 10:05:00 AM +00:00\n> 3/13/2016 10:10:00 AM +00:00\n> 3/13/2016 10:15:00 AM +00:00\n> 3/13/2016 10:20:00 AM +00:00\n> 3/13/2016 10:25:00 AM +00:00\n> 3/13/2016 10:30:00 AM +00:00\n> 3/13/2016 10:35:00 AM +00:00\n> 3/13/2016 10:40:00 AM +00:00\n> 3/13/2016 10:45:00 AM +00:00\n> 3/13/2016 10:50:00 AM +00:00\n> 3/13/2016 10:55:00 AM +00:00\n> 3/13/2016 10:00:00 AM +00:00\n> 3/13/2016 10:05:00 AM +00:00\n> 3/13/2016 10:10:00 AM +00:00\n> 3/13/2016 10:15:00 AM +00:00\n> 3/13/2016 10:20:00 AM +00:00\n> 3/13/2016 10:25:00 AM +00:00\n> 3/13/2016 10:30:00 AM +00:00\n> 3/13/2016 10:35:00 AM +00:00\n> 3/13/2016 10:40:00 AM +00:00\n> 3/13/2016 10:45:00 AM +00:00\n> 3/13/2016 10:50:00 AM +00:00\n> 3/13/2016 10:55:00 AM +00:00\n> 3/13/2016 10:00:00 AM +00:00\n> 3/13/2016 10:05:00 AM +00:00\n> 3/13/2016 10:10:00 AM +00:00\n> 3/13/2016 10:15:00 AM +00:00\n> 3/13/2016 10:20:00 AM +00:00\n> 3/13/2016 10:25:00 AM +00:00\n> 3/13/2016 10:30:00 AM +00:00\n> 3/13/2016 10:35:00 AM +00:00\n> 3/13/2016 10:40:00 AM +00:00\n"},"comment":{"url":"https://api.github.com/repos/quartznet/quartznet/issues/comments/286091240","html_url":"https://github.com/quartznet/quartznet/issues/332#issuecomment-286091240","issue_url":"https://api.github.com/repos/quartznet/quartznet/issues/332","id":286091240,"user":{"login":"rrajewski","id":3542486,"avatar_url":"https://avatars2.githubusercontent.com/u/3542486?v=3","gravatar_id":"","url":"https://api.github.com/users/rrajewski","html_url":"https://github.com/rrajewski","followers_url":"https://api.github.com/users/rrajewski/followers","following_url":"https://api.github.com/users/rrajewski/following{/other_user}","gists_url":"https://api.github.com/users/rrajewski/gists{/gist_id}","starred_url":"https://api.github.com/users/rrajewski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrajewski/subscriptions","organizations_url":"https://api.github.com/users/rrajewski/orgs","repos_url":"https://api.github.com/users/rrajewski/repos","events_url":"https://api.github.com/users/rrajewski/events{/privacy}","received_events_url":"https://api.github.com/users/rrajewski/received_events","type":"User","site_admin":false},"created_at":"2017-03-13T12:17:29Z","updated_at":"2017-03-13T12:17:29Z","body":"We had the same problem yesterday with any jobs that either had a StartDailyAt specified before 3AM or were scheduled OnEveryDay without a StartDailyAt.\r\n\r\n`(s =>\r\n     s.WithIntervalInMinutes(5)\r\n     .OnEveryDay()\r\n     .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))\r\n)`\r\nor\r\n`(s =>\r\n     s.WithIntervalInMinutes(5)\r\n     .OnEveryDay()\r\n )\r\n`"}}
{"actor":{"display_login":"rrajewski"}}