After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 669308 - Crash in Unsubscribe, stop_notification
Crash in Unsubscribe, stop_notification
Status: RESOLVED NOTGNOME
Product: evolution-mapi
Classification: Applications
Component: miscellaneous
3.3.x
Other Linux
: Normal critical
: ---
Assigned To: evolution-mapi-maint
evolution-mapi-maint
Depends on:
Blocks:
 
 
Reported: 2012-02-03 12:54 UTC by Akhil Laddha
Modified: 2012-02-10 08:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed oc patch (541 bytes, patch)
2012-02-06 14:28 UTC, Milan Crha
none Details | Review

Description Akhil Laddha 2012-02-03 12:54:45 UTC
Evolution 3.3.5 (Exchange 2010)

Tried to subscribe to other user's calendar without success then tried to disable mapi account and evolution crashed.

Program received signal SIGSEGV, Segmentation fault.

Thread 2 (Thread 0xb5e41b70 (LWP 32037))

  • #0 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 read
    at /usr/include/bits/unistd.h line 45
  • #2 unix_signal_helper_thread
    at gmain.c line 4551
  • #3 g_thread_create_proxy
    at gthread.c line 1962
  • #4 start_thread
    at pthread_create.c line 301
  • #5 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Thread 1 (Thread 0xb611c890 (LWP 32033))

  • #0 __lll_lock_wait_private
    at ../nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S line 97
  • #1 _L_lock_7546
    at malloc.c line 6487
  • #2 malloc_check
    at hooks.c line 263
  • #3 __GI___libc_malloc
    at malloc.c line 3622
  • #4 xmlNewDoc
    from /usr/lib/libxml2.so.2
  • #5 e_account_to_xml
    at e-account.c line 710
  • #6 e_account_list_save
    at e-account-list.c line 286
  • #7 e_account_list_remove_account_proxies
    at e-account-list.c line 333
  • #8 mail_account_store_service_disabled
    at e-mail-account-store.c line 606
  • #9 g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 644
  • #10 g_type_class_meta_marshal
    at gclosure.c line 885
  • #11 g_closure_invoke
    at gclosure.c line 774
  • #12 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #13 g_signal_emit_valist
    at gsignal.c line 3003
  • #14 g_signal_emit
    at gsignal.c line 3060
  • #15 e_mail_account_store_disable_service
    at e-mail-account-store.c line 1224
  • #16 action_mail_account_disable_cb
    at e-mail-shell-view-actions.c line 108
  • #17 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #18 g_closure_invoke
    at gclosure.c line 774
  • #19 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #20 g_signal_emit_valist
    at gsignal.c line 3003
  • #21 g_signal_emit
    at gsignal.c line 3060
  • #22 _gtk_action_emit_activate
    at gtkaction.c line 799
  • #23 gtk_action_activate
    at gtkaction.c line 829
  • #24 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #25 g_closure_invoke
    at gclosure.c line 774
  • #26 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #27 g_signal_emit_valist
    at gsignal.c line 3003
  • #28 g_signal_emit
    at gsignal.c line 3060
  • #29 _gtk_action_emit_activate
    at gtkaction.c line 799
  • #30 gtk_action_activate
    at gtkaction.c line 829
  • #31 gtk_real_menu_item_activate
    at gtkmenuitem.c line 1833
  • #32 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #33 g_type_class_meta_marshal
    at gclosure.c line 885
  • #34 g_closure_invoke
    at gclosure.c line 774
  • #35 signal_emit_unlocked_R
    at gsignal.c line 3202
  • #36 g_signal_emit_valist
    at gsignal.c line 3003
  • #37 g_signal_emit
    at gsignal.c line 3060
  • #38 gtk_widget_activate
    at gtkwidget.c line 6163
  • #39 gtk_menu_shell_activate_item
    at gtkmenushell.c line 1428
  • #40 gtk_menu_shell_button_release
    at gtkmenushell.c line 827
  • #41 gtk_menu_button_release
    at gtkmenu.c line 3476
  • #42 gtk_menu_button_release
    at gtkmenu.c line 3440
  • #43 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #44 g_type_class_meta_marshal
    at gclosure.c line 885
  • #45 g_closure_invoke
    at gclosure.c line 774
  • #46 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #47 g_signal_emit_valist
    at gsignal.c line 3013
  • #48 g_signal_emit
    at gsignal.c line 3060
  • #49 gtk_widget_event_internal
    at gtkwidget.c line 6132
  • #50 gtk_propagate_event
    at gtkmain.c line 2614
  • #51 gtk_main_do_event
    at gtkmain.c line 1889
  • #52 _gdk_event_emit
    at gdkevents.c line 71
  • #53 gdk_event_source_dispatch
    at gdkeventsource.c line 360
  • #54 g_main_dispatch
    at gmain.c line 2425
  • #55 g_main_context_dispatch
    at gmain.c line 2995
  • #56 g_main_context_iterate
    at gmain.c line 3073
  • #57 g_main_loop_run
    at gmain.c line 3281
  • #58 gtk_main
    at gtkmain.c line 1362
  • #59 main
    at main.c line 673
(gdb) info registers 
eax            0x0	0
ecx            0xad33eb70	-1389106320
edx            0x1	1
ebx            0xac543ff4	-1403764748
esp            0xad33df40	0xad33df40
ebp            0xad33dfa8	0xad33dfa8
esi            0x300000f	50331663
edi            0xa3fbfd8	171950040
eip            0xac416abf	0xac416abf <Unsubscribe+63>
eflags         0x10206	[ PF IF RF ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
(gdb) list
207	
208		notify_ctx = session->notify_ctx;
209		notification = notify_ctx->notifications;
210	
211		while (notification) {
212			if (notification->ulConnection == ulConnection) {
213				retval = Release(&notification->obj_notif);
214				OPENCHANGE_RETVAL_IF(retval, retval, NULL);
215				DLIST_REMOVE(notify_ctx->notifications, notification);
216				break;
(gdb)
Comment 1 Milan Crha 2012-02-03 13:46:50 UTC
Is it one of those "with Exchange 2007 server works as expected"? If I recall correctly, there was some issue with notifications reported in one log you gave me some time back. Maybe it's related, maybe it tries to Unsubscribe, even when Subscribe call failed?
Comment 2 Milan Crha 2012-02-06 14:28:58 UTC
Created attachment 206894 [details] [review]
proposed oc patch

for openchange;

Looking around I do not see an issue within evolution-mapi, but I think the issue is with openchange itself, returning success while notification was rejected. Could you try to apply this patch to your openchange, to confirm it fixes the issue for you, before I'll move it to their tracker, please? Note your MAPI mail account should have set "Listen for server changes notification". Also note that closing evolution may not be always sufficient, thus enabling/disabling mail account may do the trick, as it did for you already (at the top of comment #0). You do not need to do anything more, just enable the account which has the "Listen for server notifications" checked already, wait a bit, select its Inbox,  and when it's done with the Inbox refresh, then disable the account again. Please watch your console too.
Comment 3 Akhil Laddha 2012-02-09 10:38:04 UTC
I am not able to reproduce the crash (with both Exchange 2007 server and Exchange 2010 server) after applying patch from comment#2.
Comment 4 Milan Crha 2012-02-10 08:44:19 UTC
Thanks for testing. I moved this to OpenChange as [1]. The workaround is to disable listen for server notifications for your MAPI account.

[1] http://tracker.openchange.org/issues/385