Closed Bug 1274728 Opened 4 years ago Closed 4 years ago

Exceptions to canceled events break synchronization (TypeError: item.recurrenceInfo is null)

Categories

(Calendar :: Provider: GData, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mozilla0bug1iz8vhabf2m, Assigned: Fallen)

References

Details

Attachments

(1 file, 2 obsolete files)

User Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0
Build ID: 20160211124446

Steps to reproduce:

This series of calendar events from Google triggers the error:

{
 "kind": "calendar#event",
 "etag": "\"2925952046098000\"",
 "id": "rdqn9k1phcqujigkjffvq2g2p8",
 "status": "cancelled"
}

{
 "kind": "calendar#event",
 "etag": "\"2925952046098000\"",
 "id": "rdqn9k1phcqujigkjffvq2g2p8_20160322T150000Z",
 "status": "cancelled",
 "recurringEventId": "rdqn9k1phcqujigkjffvq2g2p8",
 "originalStartTime": {
  "dateTime": "2016-03-22T11:00:00-04:00"
 }
}

{
 "kind": "calendar#event",
 "etag": "\"2925952046098000\"",
 "id": "rdqn9k1phcqujigkjffvq2g2p8_20160323T150000Z",
 "status": "cancelled",
 "recurringEventId": "rdqn9k1phcqujigkjffvq2g2p8",
 "originalStartTime": {
  "dateTime": "2016-03-23T11:00:00-04:00"
 }
}



Actual results:

Stack trace:

A coding exception was thrown and uncaught in a Task.

Full message: TypeError: item.recurrenceInfo is null
Full stack: ItemSaver.prototype.processException@resource://gdata-provider/modules/gdataUtils.jsm:1113:13
ItemSaver.prototype.parseEventStream/<@resource://gdata-provider/modules/gdataUtils.jsm:1090:27
TaskImpl_run@resource://gre/modules/Task.jsm:331:41
TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:396:7
TaskImpl_run@resource://gre/modules/Task.jsm:333:11
Attachment #8755087 - Flags: feedback?(philipp)
Comment on attachment 8755087 [details] [diff] [review]
Patch to ignore exceptions to non-recurring calendar events

Review of attachment 8755087 [details] [diff] [review]:
-----------------------------------------------------------------

While I agree this patch would fix the error message, it would not fix the actual problem. If that specific code path is taken, it should always be a recurring item and if it is not, then something else is wrong. I think we should add more debugging info to that message, maybe the full item icalString.
Attachment #8755087 - Flags: feedback?(philipp) → feedback+
Attached patch Fix - v2 (obsolete) β€” β€” Splinter Review
Here is a patch for review
Attachment #8755087 - Attachment is obsolete: true
Attachment #8761936 - Flags: review?(makemyday)
Assignee: nobody → mozilla0bug1iz8vhabf2m
Now that I've re-read comment 0 I think we can rather fix this issue. Thanks so much for pulling that information out of the event stream, it really helped. I've added some tests and made sure that sync failures will actually trip the tests. Hope you don't mind I took over, I've attributed it towards you in the commit message.
Assignee: mozilla0bug1iz8vhabf2m → philipp
Summary: [PATCH] Error while processing some cancellation events → Exceptions to canceled events break synchronization (TypeError: item.recurrenceInfo is null)
Attached patch Fix - v3 β€” β€” Splinter Review
Attachment #8761936 - Attachment is obsolete: true
Attachment #8761936 - Flags: review?(makemyday)
Attachment #8761961 - Flags: review?(makemyday)
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Duplicate of this bug: 1193708
Duplicate of this bug: 1220340
Duplicate of this bug: 1231322
Duplicate of this bug: 1171214
Comment on attachment 8761961 [details] [diff] [review]
Fix - v3

Review of attachment 8761961 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good, r=me.

I would appreciate an all build/platform try push to proof the test is working on automation before landing.
Attachment #8761961 - Flags: review?(makemyday) → review+
I haven't taken a look at the patches yet, but there are massive test failures for that try build, including a timeout of the gdata xpcshell test for bug 1280898.

Apart from that, is there an option to exclude such mass changes from blame? It will be probably useless after landing these patches for a longer time, especially for that part of the code base that doesn't receive patches frequently (so nearly everything...).
Uh, comment 11 was mainly intended for bug 1280898, but the gdata test failure part was for this one.
I'll leave a reply on bug 1280898 :) Updated try build coming up soon!
Try run on bug 1280898 has succeeded, this can go in now.

https://hg.mozilla.org/comm-central/rev/543fdbd8c369
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 5.2
You need to log in before you can comment on or make changes to this bug.