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 605811 - Evolution hangs trying to create a new calendar entry
Evolution hangs trying to create a new calendar entry
Status: RESOLVED NOTGNOME
Product: evolution
Classification: Applications
Component: Calendar
2.30.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
: 609705 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-12-31 16:08 UTC by David Ronis
Modified: 2013-09-13 01:07 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Valgrind output (22.95 KB, text/plain)
2010-01-06 18:12 UTC, David Ronis
Details

Description David Ronis 2009-12-31 16:08:21 UTC
I'm running yesterday's git/master of evo and friends.  I just tried creating a new calendar entry by clicking on New.   Evo hangs.  Here's the backtrace:


Thread 3 (Thread 0xb020fb90 (LWP 11206))

  • #0 __lll_lock_wait_private
    from //lib/libc.so.6
  • #1 _L_lock_15450
    from //lib/libc.so.6
  • #2 free
    from //lib/libc.so.6
  • #3 IA__g_free
    at gmem.c line 190
  • #4 __nptl_deallocate_tsd
    from //lib/libpthread.so.0
  • #5 start_thread
    from //lib/libpthread.so.0
  • #6 clone
    from //lib/libc.so.6

Thread 2 (Thread 0xb1c2ab90 (LWP 11243))

  • #0 __lll_lock_wait_private
    from //lib/libc.so.6
  • #1 _L_lock_15450
    from //lib/libc.so.6
  • #2 free
    from //lib/libc.so.6
  • #3 IA__g_free
    at gmem.c line 190
  • #4 IA__g_hash_table_unref
    at ghash.c line 737
  • #5 camel_folder_change_info_free
    at camel-folder.c line 2580
  • #6 vee_rebuild_folder
    at camel-vee-folder.c line 1325
  • #7 vee_add_folder
    at camel-vee-folder.c line 1952
  • #8 camel_vee_folder_add_folder
    at camel-vee-folder.c line 222
  • #9 vfolder_adduri_exec
    at mail-vfolder.c line 273
  • #10 mail_msg_proxy
    at mail-mt.c line 459
  • #11 g_thread_pool_thread_proxy
    at gthreadpool.c line 265
  • #12 g_thread_create_proxy
    at gthread.c line 635
  • #13 start_thread
    from //lib/libpthread.so.0
  • #14 clone
    from //lib/libc.so.6

Thread 1 (Thread 0xb56bb700 (LWP 11046))

  • #0 __lll_lock_wait_private
    from //lib/libc.so.6
  • #1 _L_lock_15450
    from //lib/libc.so.6
  • #2 free
    from //lib/libc.so.6
  • #3 process_responses
    from /usr/lib/libX11.so.6
  • #4 ??
  • #5 ??
  • #0 __lll_lock_wait_private
    from //lib/libc.so.6

Comment 1 David Ronis 2010-01-05 18:43:35 UTC
Following milan's suggestion.  I disabled vfolders in gconf (/apps/evolution/mail/display/enable_vfolders), reran under a debugger and triggered the crash.   Here's the backtrace:

Thread 1 (Thread 0xb57b6710 (LWP 25831))

  • #0 mempcpy
    from /lib/libc.so.6
  • #1 _IO_default_xsputn_internal
    from /lib/libc.so.6
  • #2 vfprintf
    from /lib/libc.so.6
  • #3 vsprintf
    from /lib/libc.so.6
  • #4 vsnprintf
    at vsnprintf.c line 135
  • #5 _dbus_printf_string_upper_bound
    at dbus-sysdeps-unix.c line 3228
  • #6 _dbus_string_append_printf_valist
    at dbus-string.c line 1255
  • #7 dbus_set_error
    at dbus-errors.c line 384
  • #8 dbus_set_error_from_message
    at dbus-message.c line 3616
  • #9 dbus_g_proxy_end_call_internal
    at dbus-gproxy.c line 2351
  • #10 dbus_g_proxy_call
    at dbus-gproxy.c line 2593
  • #11 e_cal_get_objects_for_uid
    at e-data-cal-bindings.h line 482
  • #12 sensitize_buttons
    at recurrence-page.c line 615
  • #13 recurrence_page_fill_widgets
    at recurrence-page.c line 1609
  • #14 comp_editor_page_fill_widgets
    at comp-editor-page.c line 326
  • #15 real_edit_comp
    at comp-editor.c line 2547
  • #16 event_editor_edit_comp
    at event-editor.c line 559
  • #17 comp_editor_edit_comp
    at comp-editor.c line 2756
  • #18 e_calendar_view_open_event_with_flags
    at e-calendar-view.c line 1474
  • #19 e_calendar_view_new_appointment_for
    at e-calendar-view.c line 1364
  • #20 e_calendar_view_new_appointment_full
    at e-calendar-view.c line 1435
  • #21 action_event_new_cb
    at e-cal-shell-backend.c line 353
  • #22 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #23 IA__g_closure_invoke
    at gclosure.c line 767
  • #24 signal_emit_unlocked_R
    at gsignal.c line 3247
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2980
  • #26 IA__g_signal_emit
    at gsignal.c line 3037
  • #27 _gtk_action_emit_activate
    at gtkaction.c line 755
  • #28 IA__gtk_action_activate
    at gtkaction.c line 785
  • #29 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #30 g_type_class_meta_marshal
    at gclosure.c line 878
  • #31 IA__g_closure_invoke
    at gclosure.c line 767
  • #32 signal_emit_unlocked_R
    at gsignal.c line 3177
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2980
  • #34 IA__g_signal_emit
    at gsignal.c line 3037
  • #35 IA__gtk_menu_item_activate
    at gtkmenuitem.c line 879
  • #36 menu_tool_button_clicked
    at e-menu-tool-button.c line 126
  • #37 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #38 g_type_class_meta_marshal
    at gclosure.c line 878
  • #39 IA__g_closure_invoke
    at gclosure.c line 767
  • #40 signal_emit_unlocked_R
    at gsignal.c line 3177
  • #41 IA__g_signal_emit_valist
    at gsignal.c line 2980
  • #42 IA__g_signal_emit_by_name
    at gsignal.c line 3074
  • #43 button_clicked
    at gtktoolbutton.c line 764
  • #44 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #45 IA__g_closure_invoke
    at gclosure.c line 767
  • #46 signal_emit_unlocked_R
    at gsignal.c line 3247
  • #47 IA__g_signal_emit_valist
    at gsignal.c line 2980
  • #48 IA__g_signal_emit
    at gsignal.c line 3037
  • #49 IA__gtk_button_clicked
    at gtkbutton.c line 1127
  • #50 gtk_real_button_released
    at gtkbutton.c line 1723
  • #51 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #52 g_type_class_meta_marshal
    at gclosure.c line 878
  • #53 IA__g_closure_invoke
    at gclosure.c line 767
  • #54 signal_emit_unlocked_R
    at gsignal.c line 3177
  • #55 IA__g_signal_emit_valist
    at gsignal.c line 2980
  • #56 IA__g_signal_emit
    at gsignal.c line 3037
  • #57 gtk_button_released
    at gtkbutton.c line 1119
  • #58 gtk_button_button_release
    at gtkbutton.c line 1615
  • #59 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #60 g_type_class_meta_marshal
    at gclosure.c line 878
  • #61 IA__g_closure_invoke
    at gclosure.c line 767
  • #62 signal_emit_unlocked_R
    at gsignal.c line 3285
  • #63 IA__g_signal_emit_valist
    at gsignal.c line 2990
  • #64 IA__g_signal_emit
    at gsignal.c line 3037
  • #65 gtk_widget_event_internal
    at gtkwidget.c line 4938
  • #66 IA__gtk_propagate_event
    at gtkmain.c line 2442
  • #67 IA__gtk_main_do_event
    at gtkmain.c line 1647
  • #68 gdk_event_dispatch
    at gdkevents-x11.c line 2372
  • #69 IA__g_main_context_dispatch
    at gmain.c line 1960
  • #70 g_main_context_iterate
    at gmain.c line 2591
  • #71 IA__g_main_loop_run
    at gmain.c line 2799
  • #72 IA__gtk_main
    at gtkmain.c line 1219
  • #73 main
    at main.c line 593

Comment 2 Milan Crha 2010-01-06 13:28:49 UTC
Hrm, I do not understand the second crash. When I try to reproduce it, and it's enough to create a new appointment there, then it is working fine for me. Also the code walk-through, with the dbus code as well, doesn't show any issue. Cannot be your build somehow corrupted? Because otherwise more people would see this, I would guess.

Pretty the same applies to the first trace, which is independent of this one, as far as I can tell.
Comment 3 Milan Crha 2010-01-06 13:29:33 UTC
Maybe try to run this under valgrind, whether it'll show any invalid reads/writes or similar.
Comment 4 David Ronis 2010-01-06 18:11:52 UTC
I ran under valgrind (which I managed to crash).  I've attached the log.
Comment 5 David Ronis 2010-01-06 18:12:22 UTC
Created attachment 150914 [details]
Valgrind output
Comment 6 Milan Crha 2010-01-06 18:58:17 UTC
Let's start with basic things. I just noticed in your valgrind output these things:
(evolution:22683): evolution-plugin-lib-WARNING **: can't load plugin '/opt/garnome-svn-2.29.4/lib/evolution/2.30/plugins/liborg-gnome-exchange-mapi.so': libmapi.so.0: cannot open shared object file: No such file or directory

(evolution:22683): evolution-plugin-lib-WARNING **: can't load plugin '/opt/garnome-svn-2.29.4/lib/evolution/2.30/plugins/liborg-gnome-exchange-mapi.so': libmapi.so.0: cannot open shared object file: No such file or directory

(evolution:22683): evolution-plugin-lib-WARNING **: can't load plugin '/opt/garnome-svn-2.29.4/lib/evolution/2.30/plugins/liborg-gnome-exchange-mapi.so': libmapi.so.0: cannot open shared object file: No such file or directory

(evolution:22683): e-utils-CRITICAL **: Plugin "Exchange MAPI" is missing a function named e_plugin_ui_init()

Try to get rid of them, probably by recompiling exchange-mapi, and then will see. Am I right you are trying to create an event in MAPI calendar?
Comment 7 David Ronis 2010-01-06 19:00:41 UTC
I've got my mapi account disabled, although I currently don't have evo-mapi built (I'm having issues with building openchange).

The calendar in question is a local one.
Comment 8 David Ronis 2010-01-06 21:09:59 UTC
I also removed all the exchange plugins from evo's plugin dir.
Comment 9 Milan Crha 2010-01-08 15:25:13 UTC
Just for a record, as you told me on IRC, you switched to 2.28 and it doesn't exhibit this, but evo family on master and rest (most) gnome on 2.29.4 does exhibit this. You were also talking about issues with gnome panel and other system components on 2.29.4.
Comment 10 David Ronis 2010-01-08 18:46:40 UTC
More or less correct.   The 2.29.4 tree is based on the current releases of gnome and other applications and a completely fresh build.  After this I rebuild and reinstall evo and friends.   What I called 2.28.0 started out as a fresh build when 2.28.0 was released, but has been incrementally upgraded in the mean time.   The evolution on the 2.28.0 tree is the git master of Dec 16.

To be sure there are other 2.29.4 apps that aren't behaving correctly (e.g., gnome-panel, seahorse, gnome-keyring) which strongly suggests that something low level is responsible for much of this.   Since there is no ABI/API freeze yet, perhaps this is the root cause?
Comment 11 David Ronis 2010-02-09 23:06:45 UTC
I just upgraded gnome to 2.29.90 and rebuilt/installed evolution & friends (git/master).  I'm still seeing a hang when I try to create a new calendar entry.  I got the following bt running in GDB from the console:


Thread 1 (Thread 0xb5782710 (LWP 5061))

  • #0 mempcpy
    from /lib/libc.so.6
  • #1 _IO_default_xsputn_internal
    from /lib/libc.so.6
  • #2 vfprintf
    from /lib/libc.so.6
  • #3 vsprintf
    from /lib/libc.so.6
  • #4 vsnprintf
    at vsnprintf.c line 135
  • #5 _dbus_printf_string_upper_bound
    at dbus-sysdeps-unix.c line 3228
  • #6 _dbus_string_append_printf_valist
    at dbus-string.c line 1255
  • #7 dbus_set_error
    at dbus-errors.c line 384
  • #8 dbus_set_error_from_message
    at dbus-message.c line 3616
  • #9 dbus_g_proxy_end_call_internal
    at dbus-gproxy.c line 2359
  • #10 dbus_g_proxy_call
    at dbus-gproxy.c line 2601
  • #11 e_cal_get_objects_for_uid
  • #12 sensitize_buttons
    at recurrence-page.c line 615
  • #13 recurrence_page_fill_widgets
    at recurrence-page.c line 1609
  • #14 comp_editor_page_fill_widgets
    at comp-editor-page.c line 326
  • #15 real_edit_comp
    at comp-editor.c line 2541
  • #16 event_editor_edit_comp
    at event-editor.c line 559
  • #17 comp_editor_edit_comp
    at comp-editor.c line 2750
  • #18 e_calendar_view_open_event_with_flags
    at e-calendar-view.c line 1523
  • #19 e_calendar_view_new_appointment_for
    at e-calendar-view.c line 1413
  • #20 e_calendar_view_new_appointment_full
    at e-calendar-view.c line 1484
  • #21 action_event_new_cb
    at e-cal-shell-backend.c line 375
  • #22 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #23 IA__g_closure_invoke
    at gclosure.c line 767
  • #24 signal_emit_unlocked_R
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2976
  • #26 IA__g_signal_emit
    at gsignal.c line 3033
  • #27 _gtk_action_emit_activate
    at gtkaction.c line 755
  • #28 IA__gtk_action_activate
    at gtkaction.c line 785
  • #29 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #30 g_type_class_meta_marshal
    at gclosure.c line 878
  • #31 IA__g_closure_invoke
  • #32 signal_emit_unlocked_R
    at gsignal.c line 3173
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2976
  • #34 IA__g_signal_emit
    at gsignal.c line 3033
  • #35 IA__gtk_widget_activate
    at gtkwidget.c line 4972
  • #36 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1223
  • #37 gtk_menu_shell_button_release
    at gtkmenushell.c line 679
  • #38 gtk_menu_button_release
    at gtkmenu.c line 3005
  • #39 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #40 g_type_class_meta_marshal
    at gclosure.c line 878
  • #41 IA__g_closure_invoke
    at gclosure.c line 767
  • #42 signal_emit_unlocked_R
    at gsignal.c line 3281
  • #43 IA__g_signal_emit_valist
    at gsignal.c line 2986
  • #44 IA__g_signal_emit
    at gsignal.c line 3033
  • #45 gtk_widget_event_internal
    at gtkwidget.c line 4941
  • #46 IA__gtk_propagate_event
    at gtkmain.c line 2442
  • #47 IA__gtk_main_do_event
    at gtkmain.c line 1647
  • #48 gdk_event_dispatch
  • #49 IA__g_main_context_dispatch
    at gmain.c line 1960
  • #50 g_main_context_iterate
    at gmain.c line 2591
  • #51 IA__g_main_loop_run
    at gmain.c line 2799
  • #52 IA__gtk_main
    at gtkmain.c line 1219
  • #53 main
    at main.c line 611

Comment 12 David Ronis 2010-02-10 02:37:26 UTC
I ran evolution under valgrind (boy is it slow.........).  Here's what I get:

==1699== Memcheck, a memory error detector.
==1699== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==1699== Using LibVEX rev 1884, a library for dynamic binary translation.
==1699== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==1699== Using valgrind-3.4.1, a dynamic binary instrumentation framework.
==1699== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==1699== For more details, rerun with: -v
==1699== 
==1699== Syscall param writev(vector[...]) points to uninitialised byte(s)
==1699==    at 0x60513B3: writev (in /lib/libc-2.7.so)
==1699==    by 0x5169D76: write_data_T (linc-connection.c:1048)
==1699==    by 0x516A180: link_connection_writev (linc-connection.c:1244)
==1699==    by 0x513FB4E: giop_send_buffer_write (giop-send-buffer.c:464)
==1699==    by 0x514686F: orbit_small_marshal (orbit-small.c:368)
==1699==    by 0x514744B: ORBit_small_invoke_stub (orbit-small.c:648)
==1699==    by 0x51471A6: ORBit_small_invoke_stub_n (orbit-small.c:577)
==1699==    by 0x5160D5E: ORBit_c_stub_invoke (poa.c:2649)
==1699==    by 0x51124ED: ConfigServer_ping (GConfX-stubs.c:279)
==1699==    by 0x50F724E: gconf_activate_server (gconf-internals.c:2859)
==1699==    by 0x510566B: gconf_get_config_server (gconf.c:2241)
==1699==    by 0x510638A: gconf_engine_connect (gconf.c:359)
==1699==  Address 0x62ddf82 is 10 bytes inside a block of size 2,048 alloc'd
==1699==    at 0x4024CFE: malloc (vg_replace_malloc.c:207)
==1699==    by 0x5E0D293: g_malloc (gmem.c:131)
==1699==    by 0x513F7F6: get_next_indirect (giop-send-buffer.c:312)
==1699==    by 0x513F8B2: giop_send_buffer_append_copy (giop-send-buffer.c:334)
==1699==    by 0x513F937: giop_send_buffer_append (giop-send-buffer.c:351)
==1699==    by 0x513F0D4: giop_send_buffer_use_request (giop-send-buffer.c:108)
==1699==    by 0x514668A: orbit_small_marshal (orbit-small.c:326)
==1699==    by 0x514744B: ORBit_small_invoke_stub (orbit-small.c:648)
==1699==    by 0x51471A6: ORBit_small_invoke_stub_n (orbit-small.c:577)
==1699==    by 0x5160D5E: ORBit_c_stub_invoke (poa.c:2649)
==1699==    by 0x51124ED: ConfigServer_ping (GConfX-stubs.c:279)
==1699==    by 0x50F724E: gconf_activate_server (gconf-internals.c:2859)
(evolution:1699): e-data-server-DEBUG: Loading categories from "/home/ronis/.evolution/categories.xml"
(evolution:1699): e-data-server-DEBUG: Loaded 36 categories
evolution-shell-Message: Preparing for online mode...
evolution-shell-Message: Online preparations complete.
==1699== 
==1699== Syscall param writev(vector[...]) points to uninitialised byte(s)
==1699==    at 0x6051414: writev (in /lib/libc-2.7.so)
==1699==    by 0x5169D76: write_data_T (linc-connection.c:1048)
==1699==    by 0x516A180: link_connection_writev (linc-connection.c:1244)
==1699==    by 0x513FB4E: giop_send_buffer_write (giop-send-buffer.c:464)
==1699==    by 0x514686F: orbit_small_marshal (orbit-small.c:368)
==1699==    by 0x514744B: ORBit_small_invoke_stub (orbit-small.c:648)
==1699==    by 0x51471A6: ORBit_small_invoke_stub_n (orbit-small.c:577)
==1699==    by 0x5160D5E: ORBit_c_stub_invoke (poa.c:2649)
==1699==    by 0x51127FE: ConfigDatabase3_add_listener_with_properties (GConfX-stubs.c:234)
==1699==    by 0x5109E19: gconf_engine_notify_add (gconf.c:837)
==1699==    by 0x510DA38: gconf_client_add_dir (gconf-client.c:569)
==1699==    by 0x4D94D33: e_account_list_construct (e-account-list.c:248)
==1699==  Address 0x62ddf82 is 10 bytes inside a block of size 2,048 alloc'd
==1699==    at 0x4024CFE: malloc (vg_replace_malloc.c:207)
==1699==    by 0x5E0D293: g_malloc (gmem.c:131)
==1699==    by 0x513F7F6: get_next_indirect (giop-send-buffer.c:312)
==1699==    by 0x513F8B2: giop_send_buffer_append_copy (giop-send-buffer.c:334)
==1699==    by 0x513F937: giop_send_buffer_append (giop-send-buffer.c:351)
==1699==    by 0x513F0D4: giop_send_buffer_use_request (giop-send-buffer.c:108)
==1699==    by 0x514668A: orbit_small_marshal (orbit-small.c:326)
==1699==    by 0x514744B: ORBit_small_invoke_stub (orbit-small.c:648)
==1699==    by 0x51471A6: ORBit_small_invoke_stub_n (orbit-small.c:577)
==1699==    by 0x5160D5E: ORBit_c_stub_invoke (poa.c:2649)
==1699==    by 0x51124ED: ConfigServer_ping (GConfX-stubs.c:279)
==1699==    by 0x50F724E: gconf_activate_server (gconf-internals.c:2859)

** (evolution:1699): WARNING **: Failed to send buffer

** (evolution:1699): WARNING **: Failed to send buffer
** (evolution:1699): DEBUG: Loading Exchange MAPI Plugin 

This is where the main EVO UI maps: <=================================

** (evolution:1699): DEBUG: MAPI listener is constructed with 1 listed MAPI accounts 
==1699== 
==1699== Syscall param writev(vector[...]) points to uninitialised byte(s)
==1699==    at 0x6051414: writev (in /lib/libc-2.7.so)
==1699==    by 0x5BF733A: _xcb_conn_wait (in /usr/lib/libxcb.so.1.1.0)
==1699==  Address 0x61431f3 is 571 bytes inside a block of size 16,384 alloc'd
==1699==    at 0x4022DB2: calloc (vg_replace_malloc.c:397)
==1699==    by 0x5AC3084: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)

Here's where I tried to creat a new appointment.

(evolution:1699): calendar-gui-WARNING **: Couldn't find event window


(evolution:1699): calendar-gui-WARNING **: Couldn't find event window


(evolution:1699): calendar-gui-WARNING **: Couldn't find event window


(evolution:1699): calendar-gui-WARNING **: Couldn't find event window


(evolution:1699): calendar-gui-WARNING **: Couldn't find event window

I actually get a blank appointment window around here.  <=======================

==1699== 
==1699== Invalid write of size 1
==1699==    at 0x402652C: mempcpy (mc_replace_strmem.c:677)
==1699==    by 0x5FEBB0D: _IO_default_xsputn (in /lib/libc-2.7.so)
==1699==    by 0x5FC56FA: vfprintf (in /lib/libc-2.7.so)
==1699==    by 0x5FE0A6B: vsprintf (in /lib/libc-2.7.so)
==1699==    by 0x52366A1: _dbus_string_append_printf_valist (dbus-string.c:1264)
==1699==    by 0x52144BB: dbus_set_error (dbus-errors.c:384)
==1699==    by 0x521FE07: dbus_set_error_from_message (dbus-message.c:3616)
==1699==    by 0x51E4BC9: dbus_g_proxy_end_call_internal (dbus-gproxy.c:2359)
==1699==    by 0x51E55A1: dbus_g_proxy_call (dbus-gproxy.c:2601)
==1699==    by 0x49A6761: e_cal_get_objects_for_uid (e-data-cal-bindings.h:482)
==1699==    by 0x7FEE3DC: sensitize_buttons (recurrence-page.c:615)
==1699==    by 0x7FEF454: recurrence_page_fill_widgets (recurrence-page.c:1609)
==1699==  Address 0xa9e8908 is 0 bytes after a block of size 16 alloc'd
==1699==    at 0x4024E1C: realloc (vg_replace_malloc.c:429)
==1699==    by 0x52343DB: dbus_realloc (dbus-memory.c:601)
==1699==    by 0x52358AA: set_length (dbus-string.c:364)
==1699==    by 0x523667C: _dbus_string_append_printf_valist (dbus-string.c:1257)
==1699==    by 0x52144BB: dbus_set_error (dbus-errors.c:384)
==1699==    by 0x521FE07: dbus_set_error_from_message (dbus-message.c:3616)
==1699==    by 0x51E4BC9: dbus_g_proxy_end_call_internal (dbus-gproxy.c:2359)
==1699==    by 0x51E55A1: dbus_g_proxy_call (dbus-gproxy.c:2601)
==1699==    by 0x49A6761: e_cal_get_objects_for_uid (e-data-cal-bindings.h:482)
==1699==    by 0x7FEE3DC: sensitize_buttons (recurrence-page.c:615)
==1699==    by 0x7FEF454: recurrence_page_fill_widgets (recurrence-page.c:1609)
==1699==    by 0x7FDB1F8: comp_editor_page_fill_widgets (comp-editor-page.c:326)
==1699== 
==1699== Invalid write of size 1
==1699==    at 0x5FE0A7C: vsprintf (in /lib/libc-2.7.so)
==1699==    by 0x52366A1: _dbus_string_append_printf_valist (dbus-string.c:1264)
==1699==    by 0x52144BB: dbus_set_error (dbus-errors.c:384)
==1699==    by 0x521FE07: dbus_set_error_from_message (dbus-message.c:3616)
==1699==    by 0x51E4BC9: dbus_g_proxy_end_call_internal (dbus-gproxy.c:2359)
==1699==    by 0x51E55A1: dbus_g_proxy_call (dbus-gproxy.c:2601)
==1699==    by 0x49A6761: e_cal_get_objects_for_uid (e-data-cal-bindings.h:482)
==1699==    by 0x7FEE3DC: sensitize_buttons (recurrence-page.c:615)
==1699==    by 0x7FEF454: recurrence_page_fill_widgets (recurrence-page.c:1609)
==1699==    by 0x7FDB1F8: comp_editor_page_fill_widgets (comp-editor-page.c:326)
==1699==    by 0x7FD8C40: real_edit_comp (comp-editor.c:2541)
==1699==    by 0x7FDF311: event_editor_edit_comp (event-editor.c:559)
==1699==  Address 0xa9e891c is not stack'd, malloc'd or (recently) free'd

valgrind: m_mallocfree.c:243 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 64, hi = 0.
Probably caused by overrunning/underrunning a heap block's bounds.

==1699==    at 0x3802714D: report_and_quit (m_libcassert.c:140)
==1699==    by 0x3802744E: vgPlain_assert_fail (m_libcassert.c:205)
==1699==    by 0x38033822: vgPlain_arena_free (m_mallocfree.c:240)
==1699==    by 0x3804CA88: vgPlain_cli_free (replacemalloc_core.c:110)
==1699==    by 0x38001D8D: die_and_free_mem (mc_malloc_wrappers.c:123)
==1699==    by 0x38002A77: vgMemCheck_realloc (mc_malloc_wrappers.c:467)
==1699==    by 0x3804F295: vgPlain_scheduler (scheduler.c:1311)
==1699==    by 0x380642D8: run_a_thread_NORETURN (syswrap-linux.c:89)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable
==1699==    at 0x4024E1C: realloc (vg_replace_malloc.c:429)
==1699==    by 0x597A0AE: _add_edge (cairo-polygon.c:116)
==1699==    by 0x597A4FC: _add_clipped_edge (cairo-polygon.c:339)
==1699==    by 0x597A781: _cairo_polygon_add_edge (cairo-polygon.c:370)
==1699==    by 0x597A9A9: _cairo_polygon_add_external_edge (cairo-polygon.c:380)
==1699==    by 0x59725F3: _tessellate_fan (cairo-path-stroke.c:391)
==1699==    by 0x5972DE6: _cairo_stroker_join (cairo-path-stroke.c:451)
==1699==    by 0x5973FE7: _cairo_stroker_line_to (cairo-path-stroke.c:1002)
==1699==    by 0x5981A7F: _cairo_spline_decompose_into (cairo-spline.c:85)
==1699==    by 0x5981B8E: _cairo_spline_decompose_into (cairo-spline.c:197)
==1699==    by 0x5981BA6: _cairo_spline_decompose_into (cairo-spline.c:201)
==1699==    by 0x5981BA6: _cairo_spline_decompose_into (cairo-spline.c:201)
==1699==    by 0x5981C57: _cairo_spline_decompose (cairo-spline.c:212)
==1699==    by 0x5974358: _cairo_stroker_curve_to (cairo-path-stroke.c:1226)
==1699==    by 0x596FB68: _cairo_path_fixed_interpret (cairo-path-fixed.c:776)
==1699==    by 0x5973218: _cairo_path_fixed_stroke_to_polygon (cairo-path-stroke.c:1362)
==1699==    by 0x59889C3: _cairo_surface_fallback_stroke (cairo-surface-fallback.c:1254)
==1699==    by 0x5984FEE: _cairo_surface_stroke (cairo-surface.c:2098)
==1699==    by 0x59627C3: _cairo_gstate_stroke (cairo-gstate.c:1053)
==1699==    by 0x5959135: cairo_stroke_preserve (cairo.c:2229)
==1699==    by 0x5959161: cairo_stroke (cairo.c:2202)
==1699==    by 0x657DABC: clearlooks_gummy_draw_button (clearlooks_draw_gummy.c:174)
==1699==    by 0x6561F45: clearlooks_style_draw_box (clearlooks_style.c:610)
==1699==    by 0x542FDED: gtk_paint_box (gtkstyle.c:6194)
==1699==    by 0x52CAB52: _gtk_button_paint (gtkbutton.c:1522)
==1699==    by 0x52CBBE8: gtk_button_expose (gtkbutton.c:1575)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x52FF4A5: gtk_container_expose_child (gtkcontainer.c:2623)
==1699==    by 0x52C289F: gtk_box_forall (gtkbox.c:1249)
==1699==    by 0x52FDF93: gtk_container_forall (gtkcontainer.c:1499)
==1699==    by 0x52FF44B: gtk_container_expose (gtkcontainer.c:2646)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x52FF4A5: gtk_container_expose_child (gtkcontainer.c:2623)
==1699==    by 0x52C289F: gtk_box_forall (gtkbox.c:1249)
==1699==    by 0x52FDF93: gtk_container_forall (gtkcontainer.c:1499)
==1699==    by 0x52FF44B: gtk_container_expose (gtkcontainer.c:2646)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x52FF4A5: gtk_container_expose_child (gtkcontainer.c:2623)
==1699==    by 0x543D3FA: gtk_table_forall (gtktable.c:907)
==1699==    by 0x52FDF93: gtk_container_forall (gtkcontainer.c:1499)
==1699==    by 0x52FF44B: gtk_container_expose (gtkcontainer.c:2646)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x52FF4A5: gtk_container_expose_child (gtkcontainer.c:2623)
==1699==    by 0x52C289F: gtk_box_forall (gtkbox.c:1249)
==1699==    by 0x52FDF93: gtk_container_forall (gtkcontainer.c:1499)
==1699==    by 0x52FF44B: gtk_container_expose (gtkcontainer.c:2646)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x52FF4A5: gtk_container_expose_child (gtkcontainer.c:2623)
==1699==    by 0x52C289F: gtk_box_forall (gtkbox.c:1249)
==1699==    by 0x52FDF93: gtk_container_forall (gtkcontainer.c:1499)
==1699==    by 0x52FF44B: gtk_container_expose (gtkcontainer.c:2646)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)
==1699==    by 0x5D857A5: g_signal_emit (gsignal.c:3033)
==1699==    by 0x54E1F9D: gtk_widget_event_internal (gtkwidget.c:4941)
==1699==    by 0x52FD2D2: gtk_container_propagate_expose (gtkcontainer.c:2735)
==1699==    by 0x53C6FCE: gtk_notebook_expose (gtknotebook.c:2338)
==1699==    by 0x539EFF7: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==1699==    by 0x5D6D138: g_type_class_meta_marshal (gclosure.c:878)
==1699==    by 0x5D6E9D7: g_closure_invoke (gclosure.c:767)
==1699==    by 0x5D83B8F: signal_emit_unlocked_R (gsignal.c:3281)
==1699==    by 0x5D84F6E: g_signal_emit_valist (gsignal.c:2986)

Thread 2: status = VgTs_WaitSys
==1699==    at 0x5DB76F0: pthread_cond_wait@@GLIBC_2.3.2 (in /lib/libpthread-2.7.so)
==1699==    by 0x5DDFD95: g_async_queue_pop (gasyncqueue.c:398)
==1699==    by 0x4B8048C: sync_request_thread_cb (camel-db.c:78)
==1699==    by 0x5E2F17E: g_thread_create_proxy (gthread.c:1893)
==1699==    by 0x5DB3368: start_thread (in /lib/libpthread-2.7.so)
==1699==    by 0x6058CFD: clone (in /lib/libc-2.7.so)

Thread 3: status = VgTs_WaitSys
==1699==    at 0x5DB76F0: pthread_cond_wait@@GLIBC_2.3.2 (in /lib/libpthread-2.7.so)
==1699==    by 0x5DDFD95: g_async_queue_pop (gasyncqueue.c:398)
==1699==    by 0x4B8048C: sync_request_thread_cb (camel-db.c:78)
==1699==    by 0x5E2F17E: g_thread_create_proxy (gthread.c:1893)
==1699==    by 0x5DB3368: start_thread (in /lib/libpthread-2.7.so)
==1699==    by 0x6058CFD: clone (in /lib/libc-2.7.so)
Comment 13 Milan Crha 2010-02-12 12:35:10 UTC
*** Bug 609705 has been marked as a duplicate of this bug. ***
Comment 14 Milan Crha 2010-02-12 12:37:01 UTC
Isn't it possible your locally built dbus is somehow fighting with a system one? Or some configuration, anything, because the above duplicate is from gio/gvfs library, even called g_file_get_path in Evolution.
Comment 15 David Ronis 2010-02-12 16:31:34 UTC
I don't think so:
 
ps auxww | grep  dbus
ronis    21367  0.0  0.0   3768   876 tty1     S    11:21   0:00 /opt/gnome/bin/dbus-launch --exit-with-session /opt/gnome/bin/gnome-session
ronis    21368  0.0  0.0   3892  1612 ?        Ss   11:21   0:00 /opt/garnome-svn-2.29.5/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
81       25235  0.0  0.0   2740  1268 ?        Ss   Feb10   0:02 /opt/gnome/bin/dbus-daemon --system

Also remember: I'm running garnome--moving a single link takes me back to 2.28.x for ALL of gnome and friends; this includes dbus.   If I do, (and restart dbus) the problems go away.  I don't see how that could be a system conflict.   My bet is that one of the lower-level libs in 2.29.x has a problem.
Comment 16 David Ronis 2010-02-14 00:35:18 UTC
OK, I've just spent some time in the debugger.  The crash is triggered by a SIGSEGV in bus-sysdeps-unix.c:3230:

**
 * Measure the length of the given format string and arguments,
 * not including the terminating nul.
 *
 * @param format a printf-style format string
 * @param args arguments for the format string
 * @returns length of the given format string and args
 */

int
_dbus_printf_string_upper_bound (const char *format,
                                 va_list     args)
{
  char c;
  return vsnprintf (&c, 1, format, args);

Format is %s, which means that there is no place to put anything in c, but that should simply get vsnprintf to return the number space needed by the arguments.  Here's the appropriate section of the man page:

The functions snprintf() and vsnprintf() do not write  more  than  size
	  bytes  (including  the trailing `\0').  If the output was truncated due
	  to this limit then the return value is the number  of  characters  (not
	  including the trailing `\0') which would have been written to the final
	  string if enough space had been available.  Thus,  a  return  value  of
	  size  or  more  means  that  the output was truncated.  (See also below
	  under NOTES.)

I'm concerned by the note in one of the calling frames at dbus-string.c:1256 which says that the string it's passing is not null terminated.
Comment 17 Milan Crha 2010-02-15 11:53:39 UTC
Do you think something is wrong/changed with vsnprintf? What is your glibc version you are using with 2.29 and 2.28? Maybe try downgrade that one. Also, do you download it from git repositories shown in [1] or from elsewhere?

[1] http://sources.redhat.com/glibc/
Comment 18 Milan Crha 2010-02-15 12:36:15 UTC
Maybe a typo in this commit? (I think I see there one, but I do not know glibc internals at all.)

http://sourceware.org/git/?p=glibc.git;a=commit;h=f521be31b96b5ca8b6d24c388d644f5dfcafac7d
Comment 19 David Ronis 2010-02-15 18:03:04 UTC
I'm using libc-2.7 for both 2.28 and 2.29 (I'm crazy about being on the bleeding edge, but not THAT crazy).   That's what comes with slackware 12.   I have a slackware 13.0 box at home and I believe that it's got libc-2.9 installed.  I'll see if that has the same issue.

What bothers me about all this is that the problem only manifests itself in the 2.29 tree; the core platform is the same, especially glibc!
Comment 20 David Ronis 2010-02-16 02:54:01 UTC
OK I just reproduced the crash in on another box.  This one runs slackware-13.0 and has glibc-2.9 installed.   The gnome tree is garnome 2.28.x, with the exception of evolution and friends that are using a 2.29.x era git master.
Comment 21 Milan Crha 2010-02-16 10:50:31 UTC
The difference between evo 2.28 and 2.29 is with bonobo (2.28) and dbus (2.29). Not seeing the crash in 2.28 makes sense, as it's using dbus minimally (I guess only new mail notification plugin, and that only if configured to do so), and the crash comes from dbus itself.
Comment 22 David Ronis 2010-02-16 17:02:03 UTC
After spending a morning with Milan on IRC and in gdb, we figured it out.  Turns out libical contains its own copy of vsnprintf (libical/src/vsnprintf.c) that should be used on windows boxes but not on unix.   The logic was broken after revision 985 and the protection stopped working.   Fixing it up eliminates this problem.

Milan will contact the libical folks.