[ https://issues.apache.org/jira/browse/OOZIE-2494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16427449#comment-16427449 ]
Peter Bacsko commented on OOZIE-2494: ------------------------------------- I think the problem is twofold. First we have the issue described in this JIRA is that whevever there is a DST change, it's not reflected on the materialized time. On the other hand, properly following DST changes can also introduce weird side-effects: if we have a WF that runs at 2AM every day, then once a year it will be skipped during the 1:59:59 --> 3:00:00 transition and will run twice during the 2:59:59 --> 2:00:00 transition. For some people this will be normal, but I believe most customers wouldn't even consider this scenario when they set up their coordinators, so we have to be careful when we modify the semantics of WF execution. > Cron syntax not handling DST properly > ------------------------------------- > > Key: OOZIE-2494 > URL: https://issues.apache.org/jira/browse/OOZIE-2494 > Project: Oozie > Issue Type: Bug > Components: coordinator > Affects Versions: 4.2.0 > Reporter: Dennis Pallett > Assignee: Julia Kinga Marton > Priority: Blocker > Attachments: CronExpressionPOC.java, OOZIE-2494-001.patch, > OOZIE-2494-002.patch, OOZIE-2494-003.patch, OOZIE-2494-004.patch, > testActionMaterWithDST3.patch > > > When specifying a coordinator frequency, you can also specify a "timezone". > While the frequency is always calculated in UTC, the timezone’s DST rules are > still applied. We can see this in the following two Coordinators, which ran > across the DST shift (March 13 2016 at 2am) for the America/Los_Angeles > timezone. The "el-UTC" job has "UTC" as the timezone, while the "el-LA" job > has “America/Los_Angeles” as the timezone. Both jobs have a frequency of > {{$\{coord:days(1)\}}}. > {noformat} > Job Name : el-UTC > Start Time : 2016-03-13 01:10 GMT | 2016-03-12 17:10 PST > --------------------------------------------------------- > ID Nominal Time (UTC) Nominal Time (LA) > @1 2016-03-13 01:10 GMT 2016-03-12 17:10 PST > @2 2016-03-14 01:10 GMT 2016-03-13 18:10 PDT > {noformat} > {noformat} > Job Name : el-LA > Start Time : 2016-03-13 01:10 GMT | 2016-03-12 17:10 PST > --------------------------------------------------------- > ID Nominal Time (UTC) Nominal Time (LA) > @1 2016-03-13 01:10 GMT 2016-03-12 17:10 PST > @2 2016-03-14 00:10 GMT 2016-03-13 17:10 PDT > {noformat} > As you can see, @2’s nominal time is adjusted to an hour earlier in the > "el-LA" job, but not in the "el-UTC" job. > However, when running a similar set of jobs, but using cron syntax [({{10 1 > 1/1 * *}}|http://crontab.guru/#10_1_1/1_*_*], which indicates 1:10 every day > of every month), this isn’t the case: > {noformat} > Job Name : cron-UTC > Start Time : 2016-03-13 01:08 GMT | 2016-03-12 17:08 PST > --------------------------------------------------------- > ID Nominal Time (UTC) Nominal Time (LA) > @1 2016-03-13 01:10 GMT 2016-03-12 17:10 PST > @2 2016-03-14 01:10 GMT 2016-03-13 18:10 PDT > {noformat} > {noformat} > Job Name : cron-LA > Start Time : 2016-03-13 01:08 GMT | 2016-03-12 17:08 PST > --------------------------------------------------------- > ID Nominal Time (UTC) Nominal Time (LA) > @1 2016-03-13 01:10 GMT 2016-03-12 17:10 PST > @2 2016-03-14 01:10 GMT 2016-03-13 18:10 PDT > {noformat} > As you can see, @2’s nominal time are the same in both the "cron-UTC" and > "cron-LA" jobs. The "cron-LA" job should have the same nominal time as the > "el-LA" job from earlier. -- This message was sent by Atlassian JIRA (v7.6.3#76005)