recurring alarms disappear from indicator (but not clock-app) after first kick
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | indicator-datetime (Ubuntu) |
Undecided
|
Charles Kerr | ||
| | qtorganizer5-eds (Ubuntu) |
Undecided
|
Renato Araujo Oliveira Filho | ||
| | ubuntu-clock-app (Ubuntu) |
Undecided
|
Unassigned | ||
Bug Description
I'm not sure yet what's causing this, but the symptom is for ~/.local/
> RRULE;X-
> BYDAY=MO,
> SUMMARY:Weekday wakeup
When is should look more like this:
> RRULE:FREQ=
Alarms appear / trigger again after manually editing tasks.ics to remove the invalid X-EVOLUTION-ENDDATE and COUNT values, then restarting evolution-
ENDDATE's clearly coming from a (time_t)0. Not sure about 32639, but it's INT16_MAX - 128, so we've got that.
Edit: this doesn't appear to be the full story -- if I create a brand new recurring alarm it works correctly even though the epoch ENDDDATE is present. For me they disappeared later, after a few days had passed and the system had been rebooted dozens of times. I'll see if I can reproduce the bug and, if so, how to reproduce it.
Related branches
- PS Jenkins bot: Needs Fixing (continuous-integration) on 2015-02-27
- Charles Kerr (community): Approve on 2015-02-27
-
Diff: 116 lines (+94/-1)2 files modifiedorganizer/qorganizer-eds-engine.cpp (+1/-1)
tests/unittest/recurrence-test.cpp (+93/-0)
| Changed in qtorganizer5-eds (Ubuntu): | |
| assignee: | nobody → Renato Araujo Oliveira Filho (renatofilho) |
| Charles Kerr (charlesk) wrote : | #1 |
| Changed in indicator-datetime (Ubuntu): | |
| assignee: | nobody → Charles Kerr (charlesk) |
| description: | updated |
| summary: |
- clock-app alarms' RRULE have unusual X-EVOLUTION-ENDDATE, causing alarms - to not sound + recurring alarms disappear from indicator (but not clock-app) after + first kick |
| Charles Kerr (charlesk) wrote : | #2 |
This repeated for me again overnight in vivid r109 on mako.
1. create recurring mon-fri wakeup alarm
2. wait a day for alarm to kick
3. after alarm kicks, it disappears from indicator (bug)
4. open clock-app, alarm still appears there (???)
5. reboot phone to see if it's an error with indicator's state
6. same results as 3-4
| Changed in qtorganizer5-eds (Ubuntu): | |
| status: | New → In Progress |
| Launchpad Janitor (janitor) wrote : | #3 |
This bug was fixed in the package qtorganizer5-eds - 0.1.1+15.
---------------
qtorganizer5-eds (0.1.1+
[ Renato Araujo Oliveira Filho ]
* Use '0' as value for recurrence count if this is unset. (LP:
#1424924)
-- CI Train Bot <email address hidden> Fri, 27 Feb 2015 19:51:10 +0000
| Changed in qtorganizer5-eds (Ubuntu): | |
| status: | In Progress → Fix Released |
| Changed in indicator-datetime (Ubuntu): | |
| status: | New → Invalid |
| Changed in ubuntu-clock-app (Ubuntu): | |
| status: | New → Invalid |


"X-EVOLUTION- ENDDATE" is set only in one place, evolution- data-server/ calendar/ libecal/ e-cal-recur. c's function , e_cal_recur_ set_rule_ end_date( ), which is only called in this block:
> /* Calculate the end date. Note that we initialize end_date to 0, so generate_ instances_ of_rule ( ensure_ rule_end_ date_cb, get_utc_ timezone ()); ENDDATE" parameter of the set_rule_ end_date (prop, cb_data.end_date);
> * if the RULE doesn't generate COUNT instances we save a time_t of 0.
> * Also note that we use the UTC timezone as the default timezone.
> * In get_end_date () if the DTSTART is a DATE or floating time, we will
> * convert the ENDDATE to the current timezone. */
> cb_data.count = rule.count;
> cb_data.instances = 0;
> cb_data.end_date = 0;
> e_cal_recur_
> comp, prop, -1, -1,
> e_cal_recur_
> &cb_data, tz_cb, tz_cb_data,
> icaltimezone_
>
> /* Store the end date in the "X-EVOLUTION-
> * rule. */
> e_cal_recur_
It looks like somehow e_cal_recur_ generate_ instances_ of_rule( ) here generated no instances so that end_date became the epoch.