Closed Bug 462138 Opened 16 years ago Closed 14 years ago

Alarm results in error MODIFICATION_FAILURE and Calendar set to Read Only

Categories

(Calendar :: Provider: GData, defect)

x86
Windows XP
defect
Not set
major

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: markinboone, Unassigned)

Details

(Whiteboard: [not needed beta][no l10n impact])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17
Build Identifier: Thunderbird 2.0.0.17, Lightning 0.9 (2008091719), and Provider for Google Calendar 0.5.1

With Thunderbird 2.0.0.17, Lightning 0.9 (2008091719), and Provider for Google Calendar 0.5.1  this issue (similar to Bugs 424185, 435898) has recurred, even though the fix list for 0.5.0 indicates it has been resolved.

I start Tbird (after a fresh boot up of WinXP Pro SP2), current alarms are displayed (both are recurring events), I set event alarm to snooze, I get message that MODIFICATION_FAILED. I restart Tbird with the same results. I look at the calendars in Lightning and the one whose alarms went off is set to Read Only. I cancel the alarm popup using the window's close button [×]. I change the calendar Properties setting to turn off Read Only.

I create another event with an alarm to go off and everything works, including responding to earlier alarms that caused the error.

As for other conditions: 

I have 7 calendars, 5 of which are linked to Google Calendars, 1 of these is a public calendar (with no alarms), the other is shared with half a dozen people.

I have the same setup on my home machine with the only difference: most calendars have the option Show Alarms turned off.

Reproducible: Sometimes

Steps to Reproduce:
1.
2.
3.
Dismiss or snooze of alarms in read-only calendars is not possible, see Bug 356002. The only solution is to make the calendar writable or switch off alarms as you already noticed. Resolve as duplicate?
That's the problem. I'm not making the calendars Read Only... that setting is being turned on by itself.
I'd like to "me too" this bug.

It's pretty easy to create.

1. Get a Google calender account.

2. Create a reoccurring event with an alarm on it in Google. On testing I created a event that occurred weekly on wednesday in the past (8am). 

3. Set up lightning to work with lightning using ical. (you do not need to use the provider)

4. Upon loading the calender you will receive the snooze / dismiss dialog. If you click "dismiss all" You will receive the error, "MODIFICATION FAILED" and the calender will set to read only.

Also, this occurs with other iCal servers such as Zimbra.
james, you need the provider to write to the calendar. Using the iCalendar provider with google calendar causes it to be readonly by server limitations. In your case its the bug Stefan mentioned.

Mark, please enable debugging and check your error console. Especially it the item is a recurring event then snoozing or dismissing will not work for calendars you don't initially own.

Also, please check if alarms work with CalDAV, see http://www.google.com/support/calendar/bin/answer.py?answer=99358 (but ignore the line that says alarms are not supported, they work now)
Hi Phillipp, 

I'm not using the Google provider extension, I'm not posting this because my calender is broken and I need tech support, I don't even use a calender. I'm posting it because I believe this is a fault with Lightning and I want to make the software better.

What do you mean it's "server limitations"? This error happens with two diffrent iCal servers. Google and Zimbra operating in read-write mode.

Are you saying either..

a) Google and Zimbra do not properly implement iCal and that the bug is with them, or
b) your software works with them as expected, but Lightning does not operate in read-write mode with any iCal server.
(In reply to comment #5)
According to Comment #3 you are using Google Calendar via the iCalendar feed. Google allows just read-only access via iCalendar feed. Adding, changing or deleting events (this includes snoozing or dismissing alarms) is not possible due to Googles restriction. Therefore the behavior is not nice but expected.
I'm sorry, I just set it up again. I told you incorrectly it was iCal, it is CalDAV. Whops.

Steps to reproduce.

1. Click on calendar.
2. Calendar > New calendar
3. On the network > next
4. Type CalDAV > location: https://www.google.com/calendar/dav/user@gmail.com/events
5. Name > next
6. If you have a large number of reoccurring events you will see the "MODIFICATION FAILED" error when attempting to dismiss them (individually or by dismiss all), after the error the Calender is switched to read-only until TBird restarts.

Same thing happens on Zimbra only difference is
On Step 4 the location is: https://zimbra.server/dav/user/Calendar
I'm sorry, I just set it up again. I told you incorrectly it was iCal, it is CalDAV. Whops.

Steps to reproduce.

1. Click on calendar.
2. Calendar > New calendar
3. On the network > next
4. Type CalDAV > location: https://www.google.com/calendar/dav/user@gmail.com/events
5. Name > next
6. If you have a large number of reoccurring events you will see the "MODIFICATION FAILED" error when attempting to dismiss them (individually or by dismiss all), after the error the Calender is switched to read-only until TBird restarts.

Same thing happens on Zimbra only difference is
On Step 4 the location is: https://zimbra.server/dav/user/Calendar
for caldav, please turn on calendar.debug.log and calendar.debug.log.verbose in the advanced config editor. You may need to create theese boolean keys. (tools/options/advanced/general)
I set the keys, but it doesn't seem to show up in the error log. ?? hmm

All I see in the error console are informational messages such as..

[calAlarmService] considering alarm for item: Some thing alarm time: 2009/02/06 19:20:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] alarm is in the future.
[calAlarmService] alarm is too late.
[calAlarmService] considering alarm for item: Some thing alarm time: 2009/02/07 19:20:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] alarm is in the future.
[calAlarmService] alarm is too late.
[calAlarmService] considering alarm for item: old event alarm time: 2008/12/30 16:55:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] last ack was: 2009/01/07 21:06:48 UTC isDate=0
[calAlarmService] old event - alarm previously ackd.
[calAlarmService] considering alarm for item: old event alarm time: 2009/01/20 16:55:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] alarm is in the future.
[calAlarmService] alarm is too late.
[calAlarmService] considering alarm for item: old event alarm time: 2009/01/27 16:55:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] alarm is in the future.
[calAlarmService] alarm is too late.
[calAlarmService] considering alarm for item: old event alarm time: 2009/02/03 16:55:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:21:08 UTC isDate=0
[calAlarmService] alarm is in the future.
[calAlarmService] alarm is too late.

and so on..
Note on the above, I did trigger the error and got the MODIFICATION FAILED message and the cal was set from read-write to read-only and displays a yellow warning sign next to it's name in the calendar list.
Ahh here we go.. had to flush all the old events from the calendar and create new ones.

Warning: There has been an error reading data for calendar: Google.  However, this error is believed to be minor, so the program will attempt to continue. Error code: DAV_PUT_ERROR. Description: There was an error storing the item on the server.
Error: An error occurred when writing to the calendar Google! Error code: MODIFICATION_FAILED. Description: 
Source File: file:///home/james/.mozilla-thunderbird/7npeks3i.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calItemModule.js -> file:///home/james/.mozilla-thunderbird/7npeks3i.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calCalendarManager.js
Line: 952
CalDAV: Status 207 fetching calendar-data for calendar Google
CalDAV: recv: <?xml version="1.0" encoding="UTF-8"?>

<D:multistatus xmlns:D="DAV:">

  <D:response>

    <D:href>/calendar/dav/user%40gmail.com/events/8putlk7kbn20kpa34cip6r9n5c%40google.com.ics</D:href>

    <D:propstat>

      <D:status>HTTP/1.1 200 OK</D:status>

      <D:prop>

        <D:getetag>164017-63367052145</D:getetag>

        <C:calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR

PRODID:-//Google Inc//Google Calendar 70.9054//EN

VERSION:2.0

CALSCALE:GREGORIAN

X-WR-CALNAME:James

X-WR-TIMEZONE:America/Los_Angeles

BEGIN:VTIMEZONE

TZID:America/Los_Angeles

X-LIC-LOCATION:America/Los_Angeles

BEGIN:DAYLIGHT

TZOFFSETFROM:-0800

TZOFFSETTO:-0700

TZNAME:PDT

DTSTART:19700308T020000

RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU

END:DAYLIGHT

BEGIN:STANDARD

TZOFFSETFROM:-0700

TZOFFSETTO:-0800

TZNAME:PST

DTSTART:19701101T020000

RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU

END:STANDARD

END:VTIMEZONE

BEGIN:VEVENT

DTSTART;TZID=America/Los_Angeles:20090106T100000

DTEND;TZID=America/Los_Angeles:20090106T110000

RRULE:FREQ=WEEKLY;WKST=SU;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR

DTSTAMP:20090107T225545Z

ORGANIZER;CN=James:mailto:user@gmail.com

UID:8putlk7kbn20kpa34cip6r9n5c@google.com

CLASS:PRIVATE

CREATED:20090107T225332Z

DESCRIPTION:

LAST-MODIFIED:20090107T225545Z

LOCATION:

SEQUENCE:2

STATUS:CONFIRMED

SUMMARY:old event 2

TRANSP:OPAQUE

X-MOZ-LASTACK:20090107T225544Z

X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for LOCATION propert

 y. Removing entire property:

X-MOZ-GENERATION:1

BEGIN:VALARM

ACTION:DISPLAY

DESCRIPTION:This is an event reminder

TRIGGER:-P0DT0H10M0S

END:VALARM

END:VEVENT

END:VCALENDAR</C:calendar-data>

      </D:prop>

    </D:propstat>

  </D:response>

</D:multistatus>


[calAlarmService] considering alarm for item: old event 2 alarm time: 2009/01/06 17:50:00 UTC isDate=0 snooze time: null
[calAlarmService] now is 2009/01/07 22:55:53 UTC isDate=0
Warning: There has been an error reading data for calendar: Google.  However, this error is believed to be minor, so the program will attempt to continue. Error code: DAV_PUT_ERROR. Description: There was an error storing the item on the server.
Error: An error occurred when writing to the calendar Google! Error code: MODIFICATION_FAILED. Description: 
Source File: file:///home/james/.mozilla-thunderbird/7npeks3i.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/components/calItemModule.js -> file:///home/james/.mozilla-thunderbird/7npeks3i.default/extensions/%7Be2fda1a4-762b-4020-b5ad-a41df1933103%7D/js/calCalendarManager.js
Line: 952
Error: uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIWebNavigation.loadURI]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: chrome://global/content/viewSource.js :: viewSource :: line 141"  data: no]
Is this really all you get in messages? When adding an item I'd expect something like:


CalDAV: itemUri.spec = ...
CalDAV: CalDAV: Unexpected status adding item: nnn

You may be using an older version that doesn't support google sufficiently. Try Sunbird/Lightning 1.0pre.
Using lightning 0.9 build 2008100818. (release?)

I'll get the latest and try that.
Think I'm unable to test it further. Lightning 1.0pre is incompatible with Thunderbird 2.0.0.18.

Also there is nothing about..

CalDAV: itemUri.spec = ...
CalDAV: CalDAV: Unexpected status adding item: nnn
Oh also Philipp,

I'm not "adding" a new item with an alarm. That works just fine.

I receive the error when I first launch Thunderbird and I already have several reoccurring alarms already in the calendar. ("Several" meaning 5 or 6 daily events.) The alarm notification will come up and tell me that some of the alarm events are way past due, when I attempt to dismiss say.. 5 old alarms from yesterday, I will get the error and the cal will go into read-only mode.

It does seem to work if I only use 1 or 2 maybe two reoccurring alarms most of the time, but it always crashes when I have 5 or 6 daily events.
(In reply to comment #15)
> Think I'm unable to test it further. Lightning 1.0pre is incompatible with
> Thunderbird 2.0.0.18.
You need to use thunderbird 3 beta 1 or later with lightning 1.0pre.

I'll look into this before the release, there seem to be alarm problems now. Please try to find out why this is not working if you can.
Flags: blocking-calendar1.0+
Flags: blocking-calendar1.0+ → blocking-calendar1.0?
Keywords: qawanted
I have seen a similar MODIFICATION_FAILED error when trying to add an alarm to an existing event using Thunderbird 3.0b3pre, Lightning 1.0pre, Provider 0.6pre as of 20090424. 

     [JavaScript Warning: "There has been an error reading data for calendar: GData.  However, this error is believed to be minor, so the program will attempt to continue. Error code: 0x80004005. Description: A request Error Occurred. Status Code: 400 Bad Request Body: Cannot decrease the sequence number of an event"]

     [JavaScript Error: "An error occurred when writing to the calendar GData! Error code: MODIFICATION_FAILED. Description: " {file: "file:///[...]/calendar-js/calCalendarManager.js" line: 963}]

Unfortunately I wasn't able to reproduce with extended logging yet to see what sequence number has been received/send.
I was able to reproduce the error from comment 18 via the following steps:
  - create event with alarm
  - let the alarm fire
  - snooze the alarm 
  - edit event and move to another day 
  - edit event and remove alarm

In comment 12 the CalDAV PUT fails with "Error code: DAV_PUT_ERROR. Description: There was an error storing the item on the server." 
Maybe caused by some similar issue with sequence number?
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b5pre) Gecko/20090428 Lightning/1.0pre Shredder/3.0b3pre (Shredder nightly + Lightning nightly as of 4/28/09)  Using Console2 0.3.11a (sometimes)

Zimbra 5.0.13 calendar via iCS.  Cache enabled.  Show missed alarms is *UNCHECKED*.

On Shredder start, 151 stale reminders come up.  Shredder hangs and this reduces to 51.  I see the following warnings
http://pastie.org/461403

Many of these are recurring events.  If I try to dismiss one of my Monday recurring events:
http://pastie.org/461406

If I try to dismiss all:
http://pastie.org/461408

The calendar ends up as read-only.

If I un-read only the calendar and then reload it, the reminders pop up again.  If I then dismiss all, now I finally get MODIFICATION_FAILED.
http://pastie.org/461413

I had "hide duplicates" turned on in Console2 so the order is a little funny.

If anyone can think of anything else for me to try, let me know.

I might make a calendar with less events to mess with.
OK... simpler calendar!  One single previous event with a reminder.

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b5pre) Gecko/20090428
Lightning/1.0pre Shredder/3.0b3pre (Shredder nightly + Lightning nightly as of
4/28/09)  Using Console2 0.3.11a (sometimes)

Zimbra 5.0.13 calendar via iCS.  Cache enabled.  Show missed alarms is
*UNCHECKED*.

Startup Shredder:
http://pastie.org/461443

Dismiss:
http://pastie.org/461446

This gives me MODIFICATION_FAILED.  At this point, calendar is read-only.
We should look into this. I don't think this blocks beta1, although it surely should be fixed for the final or a later beta.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking-calendar1.0? → blocking-calendar1.0+
Whiteboard: [not needed beta][no l10n impact]
I could not reproduce with any of these steps, no matter how often I change things the events seem to work for me with the current nightlies. Is this still reproducable?
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091130 Lightning/1.0b1pre Thunderbird/3.0

I have a remote calendar on a Zimbra (OSE 6.0.2) server that I want to set as read-only (a public calendar).

If an event on that calendar triggers an alarm, I also get a "MODIFICATION_FAILED" message if I try to dismiss it.
(In reply to comment #24)
wafflesid, this is the expected behavior for your use case. You need write access to the calendar to modifies its content, e.g. dismissing a reminder. See Bug 356002.
No reproductions related to this bug for quite some time now, closing incomplete for now. If someone can reproduce, please reopen.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: