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 663110 - Crash on copy events between calendars
Crash on copy events between calendars
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
3.2.x (obsolete)
Other other
: High critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
: 664614 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-10-31 16:36 UTC by Michael Clements
Modified: 2014-06-17 14:13 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
evo patch (676 bytes, patch)
2012-02-17 12:52 UTC, Milan Crha
committed Details | Review

Description Michael Clements 2011-10-31 16:36:10 UTC
Using Evolution 3.X as installed/upgraded by the Ubuntu 11.10 updater.
Two calendars - one local, one DAV. DAV configured to sync with Google calendar, confirmed by creating a test event.
Goal is to copy everything from local to DAV.
Right click on local calendar, select "Copy", dialog pops up to selection destination of copy. Select the DAV calendar, then OK.
Evolution hangs unresponsive for about a minute, then crashes.
Running on dual core 3.2 GHz with 4 GB RAM, Ubuntu 11.10.
Comment 1 Michael Clements 2011-10-31 16:39:17 UTC
Upon restarting Evolution after the crash, nothing has been copied to the DAV calendar.
Attempting to copy individual events also fails - silently, no message, no crash, but they don't copy.
That is: right-click on event in local calendar, select "copy to...", dialog pops up, select DAV calendar, then OK.
Nothing happens - no error, no crash, but event is not copied.
Comment 2 André Klapper 2011-10-31 17:15:06 UTC
Thanks for taking the time to report this bug.

Does Ubuntu 11.10 really include 3.0? I hope that you use 3.2 instead... 
If so, please edit the Version field of this report.

Without a stack trace from the crash it's very hard to determine what caused it.
Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 3 Michael Clements 2011-10-31 18:04:53 UTC
When I updated Ubuntu from 11.04 to 11.10, Evolution updated from 2.x to 3.x. I don't have access to my Ubuntu system right now so I can't check, but the version of Evolution is whatever is the latest as per the Ubuntu Software Center and update manager. When I get home tonight I'll get a stack strace and exact version #.
Comment 4 Michael Clements 2011-11-01 04:58:20 UTC
Details:
Evolution 3.2.0.
NOTE: before starting this, I have verified the target CalDAV calendar is working. I created and deleted events in Google, and in Evolution, and each updates the other.
---
Behavior after selecting the calendar to copy into:
A series of dialogs appear each saying either this:
---
Cannot create object
Cannot create calendar object: Unexpected HTTP status code 409 returned (Can only store an event with a newer DTSTAMP)
---
or this:
---
Cannot create object
Cannot create calendar object: Authentication Failed
---
Perhaps the first error message is related to copying recurring events? Just a guess.
A new dialog appears every 15-20 seconds while the app is non-responsive, and they pile on top of each other.
If I click the "Close" button on any of these dialogs, then the application crashes a minute or so after clicking it.
If I ignore them, they build up for several minutes... still running.
Comment 5 Michael Clements 2011-11-01 05:46:39 UTC
More Info:
It does eventually crash even if I don't click on the dialogs.
Due to the HTTP errors above, I tried copying that entire calendar to a local calendar. Entire Evolution screen goes grey and it hangs for several minutes, then crashes. So the above HTTP errors, while suggestive that it's a CalDAV problem, are not the root cause since this same error occurs even when copying to another local calendar.
I installed the debug symbols and bug buddy, but bug buddy never kicked in when Evolution crashed, so I don't have a stack trace.
Comment 6 Milan Crha 2012-02-17 12:14:23 UTC
Confirming, when copying from one local calendar to a new one. The first the calendar factory process crashed with this backtrace:

Thread 2 (Thread 0x7fa3cb7fe700 (LWP 23529))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 g_spawn_sync
    at gspawn.c line 404
  • #2 g_spawn_command_line_sync
    at gspawn.c line 717
  • #3 run_bug_buddy
    at gnome-segvhanlder.c line 240
  • #4 bugbuddy_segv_handle
    at gnome-segvhanlder.c line 191
  • #5 <signal handler called>
  • #6 g_str_hash
    at gstring.c line 142
  • #7 g_hash_table_lookup_node
    at ghash.c line 360
  • #8 g_hash_table_insert_internal
    at ghash.c line 1099
  • #9 e_cal_backend_file_modify_object
    at e-cal-backend-file.c line 2625
  • #10 e_cal_backend_sync_modify_object
    at e-cal-backend-sync.c line 360
  • #11 cal_backend_modify_object
    at e-cal-backend-sync.c line 762
  • #12 e_cal_backend_modify_object
    at e-cal-backend.c line 1076
  • #13 operation_thread
    at e-data-cal.c line 225
  • #14 g_thread_pool_thread_proxy
    at gthreadpool.c line 319
  • #15 g_thread_create_proxy
    at gthread.c line 1962
  • #16 start_thread
    from /lib64/libpthread.so.0
  • #17 clone
    from /lib64/libc.so.6

Comment 7 Milan Crha 2012-02-17 12:17:02 UTC
After some time evolution itself crashed as well, with this backtrace (note both traces are from current git mater, which is before 3.3.90 release). The part with g_main_context_dispatch repeats down to frame 199, and gdb doesn't show more. Backtrace itself:

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 g_spawn_sync
    at gspawn.c line 404
  • #2 g_spawn_command_line_sync
    at gspawn.c line 717
  • #3 run_bug_buddy
    at gnome-segvhanlder.c line 240
  • #4 bugbuddy_segv_handle
    at gnome-segvhanlder.c line 191
  • #5 <signal handler called>
  • #6 gtk_message_dialog_new
    at gtkmessagedialog.c line 608
  • #7 show_error
    at copy-source-dialog.c line 50
  • #8 dest_source_opened_cb
    at copy-source-dialog.c line 114
  • #9 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #10 complete_async_op_in_idle_cb
    at e-client-utils.c line 349
  • #11 g_main_dispatch
    at gmain.c line 2425
  • #12 g_main_context_dispatch
    at gmain.c line 2995
  • #13 g_main_context_iterate
    at gmain.c line 3073
  • #14 g_main_context_iteration
    at gmain.c line 3136
  • #15 e_gdbus_proxy_call_sync
    at e-gdbus-templates.c line 1460
  • #16 e_gdbus_proxy_call_sync_strv__void
    at e-gdbus-templates.c line 1593
  • #17 e_gdbus_cal_call_modify_object_sync
    at e-gdbus-cal.c line 636
  • #18 e_client_proxy_call_sync_strv__void
    at e-client.c line 3021
  • #19 e_cal_client_modify_object_sync
    at e-cal-client.c line 3793
  • #20 dest_source_opened_cb
    at copy-source-dialog.c line 146
  • #21 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #22 complete_async_op_in_idle_cb
    at e-client-utils.c line 349
  • #23 g_main_dispatch
    at gmain.c line 2425
  • #24 g_main_context_dispatch
    at gmain.c line 2995
  • #25 g_main_context_iterate
    at gmain.c line 3073
  • #26 g_main_context_iteration
    at gmain.c line 3136
  • #27 e_gdbus_proxy_call_sync
    at e-gdbus-templates.c line 1460
  • #28 e_gdbus_proxy_call_sync_strv__void
    at e-gdbus-templates.c line 1593
  • #29 e_gdbus_cal_call_modify_object_sync
    at e-gdbus-cal.c line 636
  • #30 e_client_proxy_call_sync_strv__void
    at e-client.c line 3021
  • #31 e_cal_client_modify_object_sync
    at e-cal-client.c line 3793
  • #32 dest_source_opened_cb
    at copy-source-dialog.c line 146
  • #33 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #34 complete_async_op_in_idle_cb
    at e-client-utils.c line 349
  • #35 g_main_dispatch
    at gmain.c line 2425
  • #36 g_main_context_dispatch
    at gmain.c line 2995
  • #37 g_main_context_iterate
    at gmain.c line 3073
  • #38 g_main_context_iteration
    at gmain.c line 3136
  • #39 e_gdbus_proxy_call_sync
    at e-gdbus-templates.c line 1460
  • #40 e_gdbus_proxy_call_sync_strv__void
    at e-gdbus-templates.c line 1593
  • #41 e_gdbus_cal_call_modify_object_sync
    at e-gdbus-cal.c line 636
  • #42 e_client_proxy_call_sync_strv__void
    at e-client.c line 3021
  • #43 e_cal_client_modify_object_sync
    at e-cal-client.c line 3793
  • #44 dest_source_opened_cb
    at copy-source-dialog.c line 146
  • #45 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #46 complete_async_op_in_idle_cb
    at e-client-utils.c line 349
  • #47 g_main_dispatch
    at gmain.c line 2425
  • #48 g_main_context_dispatch
    at gmain.c line 2995

Comment 8 Milan Crha 2012-02-17 12:52:51 UTC
Created attachment 207848 [details] [review]
evo patch

for evolution;

Little typo in the code, the destination calendar had been opened recursively forever, doing also repeated copies. After fixing this the calendar factory does not crash as well.
Comment 9 Milan Crha 2012-02-17 12:54:23 UTC
Created commit 1101e93 in evo master (3.3.90+)
Comment 10 Milan Crha 2014-06-17 14:13:31 UTC
*** Bug 664614 has been marked as a duplicate of this bug. ***