lighting doesn't play well with events in remote calendars from other clients
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Sunbird |
Expired
|
High
|
|||
lightning-sunbird (Ubuntu) |
Confirmed
|
High
|
Unassigned |
Bug Description
Binary package hint: lightning-extension
I recently switched from Windows to Linux for my desktop operating system. On Windows I was using Sunbird with a davical back-end. I installed the Lightning plug-in in Thunderbird on my new Linux system and tried to connect to the davical. Immediately it displayed 60+ alerts (playing an alarm for each), and when I tried to do dismiss all it said that the data had changed on the server, to which I said submit anyway. After this point, when starting Thunderbird the alarm window pops up (empty) and the notification sound always plays 33 times. Nothing shows up in the error console. I'm running a remote calendar under davical 0.9.6.1 on Debian (Linux 2.6.24-
It would appear that Lightning (and Sunbird) don't play well with calendar data created by other calendar software. I messed around with it a bit, in one case exporting the data to an ICS file, then importing it again (which involved waiting through endless beeps) into a separate CalDAV user space, only to find the problem persisted. I even tried wiping out the davical database and doing an import ... still the same behavior.
I was able to resolve the issue by exporting everything from the CalDAV server to an ICS file, importing it into a local Lightning calendar, acknowledging all of the alerts, exporting it again to another ICS file, deleting everything from the CalDAV server and importing the second ICS file.
This has also been reported to Mozilla in bug report 472961.
TO REPRODUCE
1. Set up a davical server and set up a user to host a calendar.
2. Configure the calendar in Lightning
3. Import ics data from (attached)
4. Attempt to dismiss alerts.
5. Quit thunderbird
6. Start thunderbird again.
WHAT HAPPENS
On step 3 a number of alerts will pop for past events which should already be acknowledged.
On step 6 the alarm window will pop up and there should be multiple beeps. The alarm window should be empty.
WHAT I'D EXPECT
Import without beeping repeatedly, then not pop an empty alarm window every time Thunderbird is opened.
I'm running a remote calendar under davical 0.9.6.1 on Debian (Linux 2.6.24-
Changed in sunbird: | |
status: | Unknown → New |
Changed in sunbird: | |
status: | New → Invalid |
Changed in sunbird: | |
importance: | Unknown → High |
status: | Invalid → Expired |
Taking, I have a patch about ready that just needs some testing. Aside from the obvious fix of using this.setParameter() (which btw also appears in calRelation.js), I noticed that setting the ical property doesn't seem to reset the property bag. Therefore a testcase similar to the following will fail:
let icalAttach1 = getICSService( ).createIcalPro perty(" ATTACH" ); ).createIcalPro perty(" ATTACH" ); hment() ;
let icalAttach2 = getICSService(
let attach = cal.createAttac
icalAttach1. setParameter( "X-THING" , "FOO");
attach.icalProperty = icalAttach1; eq(attach. getParameter( "X-THING" ), "FOO"); eq(attach. getParameter( "X-THING" ), null);
do_check_
attach.icalProperty = icalAttach2;
do_check_
Does this make sense? Or is there a use case for making the parameters stick?