GNOME Bugzilla – Bug 509776
No Exchange reminders are working
Last modified: 2008-02-13 18:14:22 UTC
Please describe the problem: I've had a lot of problems with reminders in Evo Exchange over the years, but they finally seemed to be working OK for me in 2.12 and earlier 2.21.x releases. However, around 2.21.4 they stopped working and even upgrading to the very latest SVN HEAD code as of today (2.21.5) they are still not working. I can schedule meetings and appointments, set the reminder for 5 minutes beforehand, and nothing happens. My password is being remembered: when I start Evo I do not have to enter my password. Steps to reproduce: 1. Create an appointment in the Evo calendar 2. Set the reminder to fire (any amount of time) 3. Save it Actual results: No reminder fires. Expected results: A reminder is shown Does this happen every time? yes Other information: This used to work, in 2.12 and before and in earlier versions of 2.21. Note I also tried to create an appointment with a reminder in my personal calendar (but still the instance of Evo hooked up to exchange) and that didn't fire either!
I'm attaching output from running evolution-alarm-notifier as recommended in bug # 436628 but the output does not show the same problem seen in that bug. There is a lot of weirdness in my output though. See attached for the full text, but for example: evolution-alarm-notify-Message: Setting timeout for 28799 1202274000 1202245201 evolution-alarm-notify-Message: Wed Feb 6 00:00:00 2008 evolution-alarm-notify-Message: Tue Feb 5 16:00:01 2008 alarm-notify.c:239 (alarm_notify_init) - Initing Alarm Notify alarm-queue.c:1859 (alarm_queue_init) alarm-queue.c:232 (queue_midnight_refresh) - Refresh at Wed Feb 6 00:00:00 2008 That's all perfectly fine, BUT, then: alarm-queue.c:544 (load_alarms) alarm-queue.c:573 (load_alarms) - Setting Call backs alarm-notify.c:316 (cal_opened_cb) exchange://psmith;auth=NTLM@exch.server.com/;personal/Tasks - Calendar Status 0 alarm-queue.c:1993 (alarm_queue_add_async) - 0x80e01b0 alarm-queue.c:607 (load_alarms_for_today) - From Tue Feb 5 00:00:00 2008 to Tue Feb 5 00:00:00 2008 What in the world?!?! Is this a bug in the print statement for the debugging, or is it really trying to load alarms from and to the exact same time? Only alarms that happen at exactly midnight (of which, luckily, I don't have any) would match that. Then, just as concerning later on: alarm-queue.c:759 (query_objects_changed_async) - No Alarm found for client 0x80d2420 alarm-queue.c:662 (remove_comp) - Removing uid 040000008200E00074C5B7101A82E0080000000060BF509B2F64C801000000000000000010000000E9206EC352C69740BB1044EB5DB80805 alarm-que(evolution-alarm-notify:4241): evolution-alarm-notify-DEBUG: Could not recognize alarm's notification type, discarding. evolution-alarm-notify-Message: Failed to add all Not sure what that "could not recognize alarm's notification type" is all about; is that just because there are no alarms? Seems like an error check belongs there anyway.
Created attachment 104512 [details] Output of running evolution-alarm-notifier stand-alone
Created attachment 104520 [details] debugging patch It was only debug info printing bug, as you can see after applying this debug patch (it's intentionally marked as plain text, because it doesn't fix anything). But nice catch, I overlooked it. I added some new debug prints to the alarm-notifier, so if you can apply this patch and see what will be printed there, then in will be nice. One of the reason why the event is "rejected" is that it doesn't have any alarm. With this patch we should be able to see the event itself, so we can check.
Milan, I remember I debugged it before a bit for Michael Meeks. The alarm_uid in alarm-queue.c:has_known_*() was corrupted. But I never managed to reproduce it and it is pretty consistent for me now. I will also debug it more.
Paul, I found it finally, and believe or not, that's my fault. I caused this with my patch in bug #501548. If you revert part for 'calendar/libecal/e-cal-util.c' then it will leak, but work as expected. BTW, in gw it leaks with 'alarm' member, that should be freed too.
Woo hoo! Commenting out that cal_obj_uid_list_free() call fixed it! Hopefully a way can be found to fix the memory leak without breaking alarms :-). Let me know if you need more help testing or debugging. Cheers!
Created attachment 104575 [details] [review] proposed eds patch for evolution-data-server; This fixes the issue I caused and also frees memory properly (at least on all places I was looking on). Fix for the other leak I mentioned above will be attached to bug #510949, as Chen suggested. Paul, thanks for helping with this. I would like to ask you for the test of this patch, if it will work even on your machine/environment. Thanks in advance and I'm sorry for causing troubles.
I undid the change I made earlier today (commenting out cal_obj_uid_list_free())--I assume you wanted that since the new patch you provided didn't have that commented out. I then applied the new proposed patch and rebuilt, then forced all Evo apps to exit and restarted them. Everything still works! I'm getting reminders again. Thanks!
I would let Chen have a close look at it.
The patch looks fine.
Committed to trunk. Committed revision 8467.
I still seem to be having problems with alarm notifications in 2.21.90 with the Ubuntu Hardy update that came out in the last 24h that included the patch for this bug. It's slighty better than before this patch in that when I start evolution, it will pop up all of the alarms that should have popped up at their designated times (which didn't even happen before this patch), but while evolution is running, I still don't get alarms.
Hi, I'm sorry to respond so late, what do you mean with that "while evo is running"? Is it something like you've added an event with alarm reminder which should popup after 10 minutes since the time you entered the event, and this alarm will not popup? I just tried with local and exchange events and it works for me, so try to explain a bit more, please.
Yeah. If I add an event (or even if I have events already in my calendar), I won't get any notifications of them while Evolution is running. If I quit Evolution and restart it, I will get notifications of events that passed while I had it previously running. I must say that I am not using Exchange, but just the default Evolution back end. But I was pointed to this bug when I reported the failure on the mailing list. And indeed, the latest update from Ubuntu Hardy which included the fix for this bug did add the improvement that when I start evolution I get notification of the events that I was not notified of already. Even this never used to happen.
I'm not aware of any such option or something to prevent from showing reminders. We should debug it a bit. Can you ping me on IRC (#evolution on irc.gimp.org), it will be easier there.