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 757169 - [abrt] Crash on GTasks save from gnome-todo
[abrt] Crash on GTasks save from gnome-todo
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Tasks
3.18.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2015-10-27 06:53 UTC by Milan Crha
Modified: 2015-10-27 08:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Milan Crha 2015-10-27 06:53:30 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1274903

The GTasks calendar backend crashes when a newly created task in gnome-todo is modified using gnome-todo immediately after it is created.

(gdb) f 10
# 10 0x00007f53dab205d6 in gdata_service_update_entry (self=0x7f53bc002620 [GDataTasksService], domain=domain@entry=0x7f53e01558e0 [GDataAuthorizationDomain], entry=entry@entry=0x7f53d4210430 [GDataTasksTask], 
    cancellable=cancellable@entry=0x7f53e013fb00 [GCancellable], error=error@entry=0x7f53da036a88) at gdata/gdata-service.c:1661
1661			g_assert (_link != NULL);
(gdb) l
1656		klass = GDATA_PARSABLE_GET_CLASS (entry);
1657		g_assert (klass->get_content_type != NULL);
1658		if (g_strcmp0 (klass->get_content_type (), "application/json") == 0) {
1659			/* Get the edit URI */
1660			_link = gdata_entry_look_up_link (entry, GDATA_LINK_SELF);
1661			g_assert (_link != NULL);
1662			message = _gdata_service_build_message (self, domain, SOUP_METHOD_PUT, gdata_link_get_uri (_link), gdata_entry_get_etag (entry), TRUE);
1663			upload_data = gdata_parsable_get_json (GDATA_PARSABLE (entry));
1664			soup_message_set_request (message, "application/json", SOUP_MEMORY_TAKE, upload_data, strlen (upload_data));
1665		} else {

(gdb) bt
  • #0 waitpid
  • #1 g_spawn_sync
    at gspawn.c line 410
  • #2 g_spawn_command_line_sync
    at gspawn.c line 732
  • #3 run_bug_buddy
    at gnome-segvhanlder.c line 245
  • #4 bugbuddy_segv_handle
    at gnome-segvhanlder.c line 196
  • #5 <signal handler called>
  • #6 raise
  • #7 abort
  • #8 g_assertion_message
  • #9 g_assertion_message_expr
    at gtestutils.c line 2371
  • #10 gdata_service_update_entry
    at gdata/gdata-service.c line 1661
  • #11 gdata_tasks_service_update_task
    at gdata/services/tasks/gdata-tasks-service.c line 781
  • #12 ecb_gtasks_modify_objects
    at e-cal-backend-gtasks.c line 1179
  • #13 cal_backend_modify_objects_thread
    at e-cal-backend.c line 2730
  • #14 cal_backend_dispatch_thread
    at e-cal-backend.c line 241
  • #15 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #16 g_thread_proxy
    at gthread.c line 764
  • #17 start_thread
  • #18 clone

Comment 1 Milan Crha 2015-10-27 08:00:06 UTC
The problem was that the gnome-todo removed (didn't provide)
X-EVOLUTION-GTASKS-SELF-LINK property on the component it wanted to modify, which is mandatory for the libgdata function. I made the code in the evolution-data-server to fallback to the cached component for this property, if available.

Created commit 07e98c1 in eds master (3.19.2+)
Created commit 68137dd in eds gnome-3-18 (3.18.2+)