Closed
Bug 796743
Opened 13 years ago
Closed 13 years ago
[calendar] Recurring Events will not expand beyond 6 months or 500 instances.
Categories
(Firefox OS Graveyard :: Gaia::Calendar, defect, P1)
Firefox OS Graveyard
Gaia::Calendar
Tracking
(blocking-basecamp:+)
People
(Reporter: ghtobz, Assigned: jlal)
References
Details
(Whiteboard: [label:task][label:calendar][label:perf][LOE:S])
Attachments
(3 files)
[GitHub issue by lightsofapollo on 2012-09-26T07:07:41Z, https://github.com/mozilla-b2g/gaia/issues/5201]
Right now recurring events only get expanded when the event is initially added, we expand up to 1000 occurrences or 1 year from the current date.
Obviously this won't scale well. The api's for processing recurring information are all in place but need to be hooked up to the db and we need to re-arrange the component data for better performance/memory management.
Solution:
1. Exceptions don't need their own copy of component data create new ProviderItem store to store
the raw data of the ical components (right now these are called remote.icalComponent in each event)
2. Utilize the serialized recurrence iterator.
2.1. Create Recurring store put serialized iterator there with last expanded time.
if event expansion is complete (noted by the recurring event event from the caldav service)
remove the item from the store as it is now completely expanded.
2.2. Create RecurringService which will (anytime we move the calendar or sync) check if the last expansion is _before_ the current position (or some other related date) in the calendar if so then trigger another expansion of the recurrence rules using the stored iterator (call expandOccurrences in the CaldavProvider with the iterator option). Repeat until there are no more recurring rules that lag behind the current position in the calendar.
[GitHub comment by lightsofapollo on 2012-09-26T07:09:46Z]
@autonome We absolutely need this for v1 but I would like to punt this out until weekend/next week so I can work on some user facing stuff and smaller bugs. This is about another day of work but will add no major difference to a end user aside from if they want to view a recurring event 12 months in the future (assuming it started sometime in the past).
| Assignee | ||
Updated•13 years ago
|
Component: Gaia → Gaia::Calendar
Updated•13 years ago
|
Assignee: nobody → jlal
Updated•13 years ago
|
Priority: P1 → --
Updated•13 years ago
|
Priority: -- → P3
| Assignee | ||
Comment 2•13 years ago
|
||
Pointer to Github pull-request
| Assignee | ||
Updated•13 years ago
|
Attachment #677686 -
Flags: review?(mbudzynski)
Updated•13 years ago
|
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 3•13 years ago
|
||
I take it the way to test this is to use a bunch of reoccurring events in some imported calendars and see how well we do memory wise.
Btw - During the work week next week, I intend to lock myself into a room and burn through a lot of these calendar bugs. So expect activity next week.
Keywords: verifyme
QA Contact: jsmith
| Assignee | ||
Comment 4•13 years ago
|
||
Sorry this patch was 1 of 2, the bug is not yet closed.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 5•13 years ago
|
||
Oh, I'm sorry, I've checked that it works and I thought that it was all. My mistake.
Status: REOPENED → RESOLVED
Closed: 13 years ago → 13 years ago
Resolution: --- → FIXED
Updated•13 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 6•13 years ago
|
||
Been nearly a month - what else needs to happen for this to close?
| Assignee | ||
Comment 7•13 years ago
|
||
P3 = bottom of queue, we implemented the refactoring pieces here but the incremental expansion is still incomplete. All the supporting pieces are done/landed over the last month. Once P1/P2 are complete we will complete this bug.
Comment 8•13 years ago
|
||
Moving to P4/b-b- until we have reproducible steps where this becomes a major problem. Adding qawanted to see if we can find that instance, in which case please re-nominate for b-b. Until that point, this is mostly speculative.
| Assignee | ||
Comment 9•13 years ago
|
||
I have renamed the bug to reflect the real problem here. (Which should make it much easier to re-triage)
Summary: [calendar] Recurring event incremental expansion / better memory mangement → [calendar] Recurring Events will not expand beyond 6 months or 500 instances.
Comment 10•13 years ago
|
||
Renoming based on new information to see what happens in triage.
blocking-basecamp: - → ?
Keywords: qawanted
Updated•13 years ago
|
Priority: P4 → --
Comment 11•13 years ago
|
||
I'm going to guess a way to reproduce this bug basically would be creating a reoccurring event that goes on forever in a google or yahoo account. Then, import the calendar and observe the reoccurring event over a year's timeframe.
| Assignee | ||
Comment 12•13 years ago
|
||
Yes, this is easily verifiable with the calendar data you provided me.
Updated•13 years ago
|
blocking-basecamp: ? → +
Priority: -- → P3
Comment 13•13 years ago
|
||
Mass Modify: All un-milestoned, unresolved blocking-basecamp+ bugs are being moved into the C3 milestone. Note that the target milestone does not mean that these bugs can't be resolved prior to 12/10, rather C2 bugs should be prioritized ahead of C3 bugs.
Target Milestone: --- → B2G C3 (12dec-1jan)
Comment 14•13 years ago
|
||
hey james... what's the progress being made here? do you have an update?
| Assignee | ||
Comment 15•13 years ago
|
||
No progress made directly here. With the timezone changes we also have improved recurring event expansion time (by 7-10x) that work is done in the ical.js repo.
Those changes in addition to the incremental logic we will implement here should dramatically reduce overall sync time.
Comment 16•13 years ago
|
||
Is this still basecamp blocking? Not sure what specific issue this will resolve for the 1.0 timeframe that we couldn't address in a subsequent release (i.e. if the calendar is valid for a year out then we could fix this in the 1.1. timeframe, right?)
Comment 17•13 years ago
|
||
(In reply to Lucas Adamski from comment #16)
> Is this still basecamp blocking? Not sure what specific issue this will
> resolve for the 1.0 timeframe that we couldn't address in a subsequent
> release (i.e. if the calendar is valid for a year out then we could fix this
> in the 1.1. timeframe, right?)
Yes. Well for one, if you create a reoccurring event that goes indefinitely in an imported calendar 6 months ago, then it won't work correctly when you import it.
This would also be the key reason why my personal calendar doesn't work right now :(.
| Assignee | ||
Comment 18•13 years ago
|
||
This is not too difficult and (IMO) is critical to complete prior to v1.
We will have significant performance gains by completing this bug as the method to fix the issue is incremental expansion. Without this we will have missing calendar events... A good example is a recurring event that started 3 years ago we will never show any of those events to the user.
I would suggest re-prioritizing this as a P1 so we can knock this out.
blocking-basecamp: + → ?
Priority: P3 → P1
Comment 19•13 years ago
|
||
Driver retriage: Perceived dataloss, blocking+ P1.
blocking-basecamp: ? → +
Comment 20•13 years ago
|
||
Please provide an update on the current status of this bug.
| Assignee | ||
Comment 21•13 years ago
|
||
Should be in review tonight wrapping up the "THISANDFUTURE" bug first so we can do one final DB schema change before the end of c3
Updated•13 years ago
|
Target Milestone: B2G C3 (12dec-1jan) → B2G C4 (2jan on)
| Assignee | ||
Comment 22•13 years ago
|
||
Pointer to Github pull-request
| Assignee | ||
Comment 23•13 years ago
|
||
Pointer to Github pull-request
| Assignee | ||
Comment 24•13 years ago
|
||
Comment on attachment 677686 [details]
Pointer to Github pull request: https://github.com/mozilla-b2g/gaia/pull/6146
This patch includes the ICAL code you reviewed.
I need to test this out on the wifi later but this is ready for initial review.
Attachment #677686 -
Flags: review?(mbudzynski) → review?(kgrandon)
| Assignee | ||
Comment 25•13 years ago
|
||
OK, there where a few more changes needed and now that those are done this is ready to go. There are various performance improvements here but there is probably more work to be done but it seems acceptable on my calendar test cases now.
| Assignee | ||
Comment 26•13 years ago
|
||
Status: REOPENED → RESOLVED
Closed: 13 years ago → 13 years ago
Resolution: --- → FIXED
Updated•13 years ago
|
Attachment #677686 -
Flags: review?(kgrandon) → review+
Comment 27•13 years ago
|
||
Verified through a sanity check on my deadly gmail calendar - the reoccurring events looked okay.
Status: RESOLVED → VERIFIED
Keywords: verifyme
You need to log in
before you can comment on or make changes to this bug.
Description
•