Closed Bug 491118 Opened 11 years ago Closed 9 years ago

reminder for non-dismissed events fire again after hibernation (double/twice in alarm popup)

Categories

(Calendar :: Alarms, defect, major)

defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: aryx, Assigned: Fallen)

References

Details

(Keywords: regression, Whiteboard: [needed beta][no l10n impact])

Attachments

(3 files)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090428 Calendar/1.0pre

Calendar: sqlite

Actual result: After starting the PC after hibernation, undismissed alarms of recurring events are added again (for the second, third, fourth ... time) to the alarm popup. Closing the alarm popup throws a 'MODIFICATION FAILED' error.

This is a regression, unfortunately I don't remember the bug anymore (and my update history has been destroyed). I only remember that Fallen warned us in a bug about regression, so I didn't update for a month or so. Maybe from bug 353492
Flags: blocking-calendar1.0?
archaeopteryx, could you retest with the archived nightly builds from <http://ftp.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/2009/> to narrow down the regression range?

Does this happens only for the storage provider? Or can you reproduce it with other calendars providers too?
confirmed with
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.5pre) Gecko/20091025 Calendar/1.0pre

event:
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Warsaw
X-LIC-LOCATION:Europe/Warsaw
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED;TZID=Europe/Warsaw:20090930T222814
LAST-MODIFIED:20091031T124252Z
DTSTAMP:20091031T124252Z
UID:c5bab3f0-9621-46b8-818c-02fcc1f5d4a9
SUMMARY:dzien wolnego
STATUS:CONFIRMED
X-MOZ-LASTACK:20091013T070947Z
DTSTART;TZID=Europe/Warsaw:20091106T100000
DTEND;TZID=Europe/Warsaw:20091106T110000
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
SEQUENCE:0
DESCRIPTION:blebleble
TRANSP:OPAQUE
X-MOZ-GENERATION:3
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DURATION:-PT5M
DESCRIPTION:Domyślny opis Mozilli
END:VALARM
END:VEVENT
END:VCALENDAR


and the console printed out 2 errors:

Błąd: calAlarmWindow.removeWidgetFor is not a function
Plik źródłowy: file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calAlarmMonitor.js
Wiersz: 192

Błąd: [Exception... "'[JavaScript Error: "calAlarmWindow.removeWidgetFor is not a function" {file: "file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calAlarmMonitor.js" line: 192}]' when calling method: [calIAlarmServiceObserver::onRemoveAlarmsByItem]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calUtils.js :: notifyFunc :: line 1223"  data: yes] STACK: 1: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calUtils.js:1226] notifyFunc
2: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calUtils.js:1229] calListenerBag_notify
3: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calAlarmService.js:462] cAS_removeAlarmsForItem
4: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calAlarmService.js:545] cAS_fA_onGetResult
5: [null:0] null
6: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calMemoryCalendar.js:461] anonymous
7: [file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calMemoryCalendar.js:351] anonymous

Plik źródłowy: file:///C:/Mozilla%20Sunbird%201.0/modules/calUtils.jsm -> file:///C:/Mozilla%20Sunbird%201.0/calendar-js/calUtils.js
Wiersz: 1226
Attached image screenshot
it also doubles event in unifinder and calendar grid

reproduced with nightly Lt and Sunbird 1.0pre
Duplicate of this bug: 550674
Duplicate of this bug: 561843
Flags: blocking-calendar1.0? → blocking-calendar1.0+
Whiteboard: [not needed beta][no l10n impact]
Duplicate of this bug: 569213
I also have this problem. Every repeating event seems to appear an additional time in the alarms window after continuing hibernation. When dismissing or snoozing one of them, all disappear. No error my system. I think I have this issue since upgrading to TB 3.x (not sure which version, current is 3.1.2) and Lightning 1.0b2.
I have to say this is absolutely annoying as I have at least one recurring event every day. I already had 30 times the same event from different days...
Also happens after standby.
Same here, if you use your notebook as being a mobile computer this can get quite annoying even with the snooze for 5 minutes workaround which throws a 'MODIFICATION FAILED'
Similar problem. TB 3.1, Lightning 1.0b2.  Sometimes displays 3 entries when I add an event. Or when I close main TB window and re-open it that dupes existing events. I have not been able to isolate how/when it happens.  It generally happens when and after I create a repeating event. It is VERY ANNOYING and makes the calendar unusable.  2 of 3 entries are clearly phantoms and can't be removed.  If I reboot TB, the phantoms go away if the removable event was removed.
Synovel Spicebird is another version of the Thunderbird application using the same source code. It does not have this bug. I switched to Spicebird (also a free application) and I now have a usable calendar.
Nevermind. Spicebird does the same thing with recurring events. Damn.
Duplicate of this bug: 615849
Duplicate of this bug: 621785
Duplicate of this bug: 614849
I believe I have found the culprit for this bug, but I'm not sure. I've noticed this also happens for non-recurring alarms now. During investigation I found out that removing observers doesn't actually remove them. The root of the problem is in compareObjects, which doesn't seem to work anymore. I've asked in mozilla.dev.platform to see if there is a replacement API for comparing wrapped xpcom objects. If there is none, we will have to move to giving observers a property to compare (i.e hashId, hashCode)

For reference:
http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/30c8efbea041e3c5
Assignee: nobody → philipp
Status: NEW → ASSIGNED
OS: Windows XP → All
Hardware: x86 → All
Summary: reminder for recurring non-dismissed events fire again after hibernation (double/twice in alarm popup) → reminder for non-dismissed events fire again after hibernation (double/twice in alarm popup)
Whiteboard: [not needed beta][no l10n impact] → [needed beta][no l10n impact]
Depends on: 662915
Attached patch Fix - v1Splinter Review
Oh the joys. It seems the error was quite simple after all. since "service," was not prepended to the contract id in the category registration, the alarm monitor was created again and again instead of just once. This fixes, including some other minor things I found.

I tried to also "fix" the startup service (which also doesn't specify "service,") but doing that caused a lot of other errors and since profile-after-change doesn't happen so often, I think its ok to keep this way for now.
Comment on attachment 538263 [details] [diff] [review]
Fix - v1

Picking someone to review is probably a good idea :) I'll take anyone's review.
Attachment #538263 - Flags: review?(bv1578)
Attachment #538263 - Flags: review?(ssitter)
Whiteboard: [needed beta][no l10n impact] → [needed beta][no l10n impact][needs review]
Comment on attachment 538263 [details] [diff] [review]
Fix - v1

I'm not sure if the patch works correctly - or maybe it is a different issue. 

I tested the following: Reminder window was showing one missed non-repeating event from yesterday and two missed occurrences for a repeating event from yesterday and today. I put system to hibernation and woke it up.

Now the reminder window showed only the one missed non-repeating event from yesterday. After Thunderbird application restart the two missed occurrences for a repeating event from yesterday and today fired again - this was visible by observing the alarm icon animation in the calendar view. But the reminder window that opened was empty.
I think this might be a different issue, I'm not sure if it was this bug or another one, but we did have a bug about an empty alarm window. I hope to look into this tomorrow at latest, but I'd appreciate a pre-review of the existing code.
Comment on attachment 538263 [details] [diff] [review]
Fix - v1

Alarms seem to work fine for me with this patch. The problem with an empty alarm window should be filed and investigated in a new bug. r=mschroeder

Testing from users who had experienced this behavior is much appreciated!
Attachment #538263 - Flags: review?(ssitter)
Attachment #538263 - Flags: review?(bv1578)
Attachment #538263 - Flags: review+
Pushed to comm-central <http://hg.mozilla.org/comm-central/rev/68f7e3957668>
-> FIXED
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Trunk
Backported to comm-miramar <http://hg.mozilla.org/releases/comm-miramar/rev/712c9401b402>
Target Milestone: Trunk → 1.0b4
I'd love to test this; however, I have no idea how to get a version of lightning containing the bugfix. I'd build it myself from the source, but the whole source control and build system is so complicated, I didn't get it how to do so.
(In reply to comment #25)
> I'd love to test this; however, I have no idea how to get a version of
> lightning containing the bugfix. I'd build it myself from the source, but
> the whole source control and build system is so complicated, I didn't get it
> how to do so.

I pulled my release from here: ftp://ftp.mozilla.org/pub/mozilla.org/calendar/lightning/nightly/latest-comm-miramar/win32-xpi/

However, when opening with Thunderbird 3.1.10, which is the latest stable release I get a "Non-Supported Error"

Is there a version of Thunderbird that this should be tested with?

I also tested with: ftp://ftp.mozilla.org/pub/mozilla.org/calendar/lightning/nightly/latest-comm-central/win32-xpi/

Same, but slightly different error
The patch has just been checked in today. You'll have to wait for the 2011-06-19 Lightning nightly build before testing.

The comm-miramar builds work with the matching Thunderbird 5.0 test builds.
The comm-central builds work with the matching Thunderbird 7.0 test builds.
I have documented my problems with this particular error (on the forums) and so am able to reproduce/check for the problem.

HOWEVER, this latest version being offered with the fix is earmarked as being ONLY for Thunderbird v5.*  despite the original problems being reported on a TB 3.1 platform.

THEREFORE I cannot test for the bug fix (nor consequently benefit from the fix which I am desperate for).

Can this latest 'fixed' version be modified/backported to be compatible with the original error reported TB v3.1.x ?

(Many users do not want to be guinea pigs and update to TB v5.0 betas.  Fixing an addon and making it only available to a BETA version of TB is not productive to the mainstream of users who choose to take Stable versions only and currently suffer with the existing problem).
I noticed this behaviour with the TB 5 release candidate:

- alarm shows up
- go to standby
- power up
--> alarm is not shown anymore (but it should be)

- go to standby
- power up
--> empty alarm window is shown

clicking "snooze all" does nothing.


I then closed the window with "X", but it kept appearing after each resume from standby.
jimimaseye, unfortunately we do not have capacity to backport to TB3.1. Please note thought that Thunderbird 5 has just been released. The empty alarm window issue should be bug 662718.
According to Larsen (Comment 29) TB 5 is failing too. I concur with jimimaseye; if, per chance, someone solves these issues, Lightning, or where the issue lies, needs to be made compatible with 3.1 with the fixes.
I have installed and tested TB 10.0.2 with the latest Lightning 1.2.1 and my initial results are positive.  Regarding the 'repeating reminder on awake' problem it seems to have been resolved.  I have tested for 2 weeks with regular sleep/awake under the same conditions and now it doesnt happen).  Regarding snoozing problems, reminders seem to be handled correctly in all cases.  Having been nervous of upgrading I can confirm that TB10.0.2, lightning 1.2.1 (and MinimizeToTray revived (MinTrayR)1.0)  all works ok and the nervous may upgrade to this level.  (I for sure wont be allowing auto-updates though without good reason/benefit and heavy testing now we have this working solution.)
I too have been running 10.0.2 since release and Lightning has been working fine. Another issue with dismissing several alarms at once and setting a calendar to readonly seems to be gone. I dropped MinimizeToTray because of the request for contribution, can't afford all the stuff in the Mozilla store.
Roger, You may therfore be interested in the 'MinTrayR' version of minimizetotray (as posted above) if not already done so.  I find it does exactly what we want just like the original did (the author claims to have taken it on after the original was no longer maintained) and it does work with 10.0.2
jimimaseye, "MinTrayR" and MinimizeToTray-revived are now one in the same and want a contribution of $5 ([url]https://addons.mozilla.org/en-US/firefox/addon/minimizetotray-revived/?src=search[/url]). Gotten to be an enterprise and it makes me feel like a thief. I now use TrayIt - not the best but gets the job done.
Well yes, he 'asks' for a contribution.  I guess that if all 208,000 downloading users that have downloaded would have given $5 then he would have given up work a long time ago.  Of course a contribution is only a request, not an instruction and there's nothing wrong with asking for one - especially when you consider you are offering a free-to-use license with the product.  And of course, there is nothing wrong with accepting the 'free-to-use' element and not giving a contribution.  (Of course, i suspect he wouldnt have had 208,000 downloads if he enforced the SALE of  the product for $5.  Many (most) people would have done like you and I, and opted for another, CHEAPER (ahem!) solution).  So, with this reasoning, my conscience is clear.
Whiteboard: [needed beta][no l10n impact][needs review] → [needed beta][no l10n impact]
You need to log in before you can comment on or make changes to this bug.