yoda says: daylight savings time gap it has

Dear all,

happy new year and success for your projects, especially for those that are
focusing on DHIS2!

I am experiencing a yoda error when running the analytics table update (See
below excerpt from java-dump). I saw the error earlier when trying to delete the
analytics tables, but now (after starting to load lots of live-date from our
ERP) it also pops up when updating the tables.

Note that I am using the date dimension not in the sense of reporting periods,
but as dimension for real dates (e.g. birth dates). They can reach from 0 AD to
9999 AD. But this didn't cause a problem so far. Is there anything like a hidden
validity range for dates or does this have to do with timezone setting on the
server?

I am sitting on 2.21 build 20972, standard server installation on Ubuntu 14.04
from the manual with up to date packages, including Oracle Java 8.

Thanks for your input,

Uwe

--- catalina out ---
[...]
* INFO 2016-01-14 10:09:10,230 [Level: ERROR, category: ANALYTICSTABLE_UPDATE,
time: Thu Jan 14 10:09:10 EAT 2016, message: Process failed: Illegal instant due
to time zone offset transition (daylight savings time 'gap'):
1940-01-01T00:00:00.000 (Africa/Nairobi)] (InMemoryNotifier.java
[taskScheduler-2])
* ERROR 2016-01-14 10:09:10,263 Unexpected error occurred in scheduled task.
(TaskUtils.java [taskScheduler-2])
org.joda.time.IllegalInstantException: Illegal instant due to time zone offset
transition (daylight savings time 'gap'): 1940-01-01T00:00:00.000
(Africa/Nairobi)
        at
org.joda.time.chrono.ZonedChronology.localToUTC(ZonedChronology.java:143)
        at
org.joda.time.chrono.ZonedChronology.getDateTimeMillis(ZonedChronology.java:118)
        at
org.joda.time.chrono.AssembledChronology.getDateTimeMillis(AssembledChronology.java:133)
        at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:258)
        at org.joda.time.DateTime.<init>(DateTime.java:373)
        at
org.hisp.dhis.calendar.ChronologyBasedCalendar.isoStartOfYear(ChronologyBasedCalendar.java:313)
        at
org.hisp.dhis.analytics.table.PartitionUtils.getPeriod(PartitionUtils.java:60)
[...]
--- catalina out ---

Hi Uwe,

It looks like there actually was a time zone gap then

http://www.timeanddate.com/time/change/kenya/nairobi?year=1940

which states

When local standard time was about to reach
Monday, 1 January 1940, 00:00:00 clocks were turned forward 0:15 hours to
Monday, 1 January 1940, 00:15:00 local standard time instead

So, that time period is not valid actually.

To me it looks like Joda is doing what it is supposed to do, but analytics is not handling the gap correctly.

@Morten, looks similar to the ones we saw before in Bangladesh I think. What was the solution there?

Regards,
Jason

···

On Thu, Jan 14, 2016 at 8:40 AM, Uwe Wahser uwe@wahser.de wrote:

Dear all,

happy new year and success for your projects, especially for those that are

focusing on DHIS2!

I am experiencing a yoda error when running the analytics table update (See

below excerpt from java-dump). I saw the error earlier when trying to delete the

analytics tables, but now (after starting to load lots of live-date from our

ERP) it also pops up when updating the tables.

Note that I am using the date dimension not in the sense of reporting periods,

but as dimension for real dates (e.g. birth dates). They can reach from 0 AD to

9999 AD. But this didn’t cause a problem so far. Is there anything like a hidden

validity range for dates or does this have to do with timezone setting on the

server?

I am sitting on 2.21 build 20972, standard server installation on Ubuntu 14.04

from the manual with up to date packages, including Oracle Java 8.

Thanks for your input,

Uwe

— catalina out —

[…]

  • INFO 2016-01-14 10:09:10,230 [Level: ERROR, category: ANALYTICSTABLE_UPDATE,

time: Thu Jan 14 10:09:10 EAT 2016, message: Process failed: Illegal instant due

to time zone offset transition (daylight savings time ‘gap’):

1940-01-01T00:00:00.000 (Africa/Nairobi)] (InMemoryNotifier.java

[taskScheduler-2])

  • ERROR 2016-01-14 10:09:10,263 Unexpected error occurred in scheduled task.

(TaskUtils.java [taskScheduler-2])

org.joda.time.IllegalInstantException: Illegal instant due to time zone offset

transition (daylight savings time ‘gap’): 1940-01-01T00:00:00.000

(Africa/Nairobi)

    at

org.joda.time.chrono.ZonedChronology.localToUTC(ZonedChronology.java:143)

    at

org.joda.time.chrono.ZonedChronology.getDateTimeMillis(ZonedChronology.java:118)

    at

org.joda.time.chrono.AssembledChronology.getDateTimeMillis(AssembledChronology.java:133)

    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:258)

    at org.joda.time.DateTime.<init>(DateTime.java:373)

    at

org.hisp.dhis.calendar.ChronologyBasedCalendar.isoStartOfYear(ChronologyBasedCalendar.java:313)

    at

org.hisp.dhis.analytics.table.PartitionUtils.getPeriod(PartitionUtils.java:60)

[…]

— catalina out —


Mailing list: https://launchpad.net/~dhis2-users

Post to : dhis2-users@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-users

More help : https://help.launchpad.net/ListHelp

Jason P. Pickering
email: jason.p.pickering@gmail.com
tel:+46764147049

Lars fixed that, so I'm not entirely sure.. I think we just skipped invalid
periods

@Lars: any comments?

···

On Thu, Jan 14, 2016 at 2:50 PM, Jason Pickering < jason.p.pickering@gmail.com> wrote:

@Morten, looks similar to the ones we saw before in Bangladesh I think.
What was the solution there?

--
Morten

Hi Uwe

I have made a proposed fix available in 2.21 revision 21003, please try it out and report back. If you are downloading from our CI server, please give it 30-40 minutes to build, then you can download a new build.

http://ci.dhis2.org/job/dhis2-2.21/lastSuccessfulBuild/artifact/dhis-2/dhis-web/dhis-web-portal/target/dhis.war

···

On Thu, Jan 14, 2016 at 2:59 PM, Morten Olav Hansen mortenoh@gmail.com wrote:


Morten

On Thu, Jan 14, 2016 at 2:50 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

@Morten, looks similar to the ones we saw before in Bangladesh I think. What was the solution there?

Lars fixed that, so I’m not entirely sure… I think we just skipped invalid periods

@Lars: any comments?


Morten

Hi Morten,

I applied the new build and it works. Just copied the war-file in and ran the
analytics again - now reloading needed.

Thanks a lot (also to Jason) - another example of the speedy problem solving
cycle in Oslo :slight_smile:

Regards,

Uwe

···

---

Morten Olav Hansen <mortenoh@gmail.com> hat am 14. Januar 2016 um 14:35
geschrieben:

Hi Uwe

I have made a proposed fix available in 2.21 revision 21003, please try it
out and report back. If you are downloading from our CI server, please give
it 30-40 minutes to build, then you can download a new build.

http://ci.dhis2.org/job/dhis2-2.21/lastSuccessfulBuild/artifact/dhis-2/dhis-web/dhis-web-portal/target/dhis.war

--
Morten

On Thu, Jan 14, 2016 at 2:59 PM, Morten Olav Hansen <mortenoh@gmail.com> > wrote:

>
> On Thu, Jan 14, 2016 at 2:50 PM, Jason Pickering < > > jason.p.pickering@gmail.com> wrote:
>
>> @Morten, looks similar to the ones we saw before in Bangladesh I think.
>> What was the solution there?
>>
>
> Lars fixed that, so I'm not entirely sure.. I think we just skipped
> invalid periods
>
> @Lars: any comments?
>
> --
> Morten
>