Bug related to parsing time or timezone of events created with Thunderbird Lightning



  • I have recently installed Android 9, LineageOS 16.0 and I seem unable to correctly display calendar events. Specifically: events created with Thunderbird Lightning are displayed at a wrong time.

    To demonstrate the issue I have created two events at identical times (1400h to 1500h on March 5, 2019. Timezone: Dublin, Ireland). One of the events is created using the webinterface of my email provider Posteo.de. The other event is created using the same account but via the Thunderbird Lightning interface. In both Thunderbird and the Webclient the events appear correctly. On the phone using DAVx5 all event from Thunderbird are incorrectly displayed. It seems like DAVx5 is unable to parse the time of the event created in Thunderbird. Every event that is scheduled for today is displayed as an event for 22h yesterday, regardless of the event time.

    There is no error message showing up during the synchronization. The only sign is wrongly displayed events when the events are created using Thunderbird alongside correctly displaying events from the phone and webclient.

    • Events created on the phone are displaying correctly on every other client
    • All devices are set at the same timezone (Dublin, Ireland. UTC0000)
    • All devices and programs are updated to the latest available versions

    Possible related message in the log:
    Error loading custom timezone aliases: Attempt to invoke virtual method ‘int java.io.Reader.read(char[])’ on a null object reference

    Please find the DAVx5 verbose sync log of two events here: https://paste.fedoraproject.org/paste/T7HEjmSm~lmPGnroL2cWxQ. There is a clear difference in timezone formatting of both events.



  • To not spend time on issues which might have already been fixed in Lightning, I would first recommend that you update it to the latest v6.2.5.2, the v4.0.5.2 is a little bit outdated.



  • Thanks for the quick reply. I think I looked at the wrong place. Lightning version 6.2.5 is actually installed. Just double checked and replicated the issue as described above again with identical results.

    If necessary I can provide the full log by email or run other tests.


  • developer

    Hello,

    1. Posteo sends only UTC timestamps:

    DTSTART:20190305T140000Z

    So there’s no time zone information in that.

    1. Your Lightning event contains a wrong VTIMEZONE definition:
    BEGIN:VTIMEZONE
    TZID:Europe/Dublin
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0000
    TZNAME:IST
    DTSTART:19700329T010000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
    END:STANDARD
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0000
    TZOFFSETTO:+0100
    TZNAME:GMT
    DTSTART:19701025T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
    END:DAYLIGHT
    END:VTIMEZONE
    

    It says that IST (standard time) switches from an offset of +0100 to +0000, and GMT (daylight time) switches from +0000 to +0100. So GMT would have an offset of 0100 to itself (because offsets are given relative to GMT), which is clearly wrong.

    In the Thunderbird definition, standard time starts on the last sunday before March and summer time just before October. This is wrong, too.

    According to https://github.com/ical4j/ical4j/blob/cd29ee1884dac701eeb1680582d5718b7f0f6258/src/main/resources/zoneinfo/Europe/Dublin.ics, it’s just the other direction:

    ...
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0000
    TZOFFSETTO:+0100
    TZNAME:IST
    DTSTART:19810329T010000
    RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0000
    TZNAME:GMT
    DTSTART:19961027T020000
    RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
    END:STANDARD
    

    Standard time is GMT (+0000), which is switched to +0100 for daylight saving.

    When I edit the event to the correct time zone definition, everything works as expected:

    BEGIN:VCALENDAR
    PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
    VERSION:2.0
    BEGIN:VTIMEZONE
    TZID:Europe/Dublin
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0000
    TZNAME:GMT
    DTSTART:19700329T010000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
    END:STANDARD
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0000
    TZOFFSETTO:+0100
    TZNAME:IST
    DTSTART:19701025T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
    END:DAYLIGHT
    END:VTIMEZONE
    BEGIN:VEVENT
    CREATED:20190304T150041Z
    LAST-MODIFIED:20190304T150048Z
    DTSTAMP:20190304T150048Z
    UID:testThunderbird
    SUMMARY:test w/ correct vtimezone
    DTSTART;TZID=Europe/Dublin:20190305T140000
    DTEND;TZID=Europe/Dublin:20190305T150000
    TRANSP:OPAQUE
    X-MOZ-GENERATION:1
    END:VEVENT
    END:VCALENDAR
    


    1.png


    So, this seems to be a problem of Thunderbird Lightning when creating the timezone definition.

    Can you please report the bug to Thunderbird Lightning and post a link here for reference?



  • Thanks for investigating this. This indeed seems to be the problem. I just confirmed that everything works as expected if I switch the timezone to Europe/London. I have opened a ticket at the Thunderbird support forums.


  • developer

    @hidde Thanks!



Similar topics