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 314544 - E-D-S prints warning messages too the console when program shutdowns
E-D-S prints warning messages too the console when program shutdowns
Status: RESOLVED OBSOLETE
Product: evolution-data-server
Classification: Platform
Component: general
1.2.x (obsolete)
Other All
: Normal minor
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2005-08-26 07:30 UTC by Vicent Seguí
Modified: 2009-08-25 15:00 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description Vicent Seguí 2005-08-26 07:30:48 UTC
Please describe the problem:
Hi, I'm using the E-D-S package 1.2.1 from Ubuntu Hoary in Pentium IV.

The EDS backend will print the following message when program shutdowns:

*** (process:27100): WARNING **: FIXME: wait for completion unimplemented

The number following is the pid  of the program. A program that displays this
bug is shown here

http://lists.ximian.com/pipermail/evolution-hackers/2005-August/006238.html.

and another one here (thi one uses a bonobo_main)

http://lists.ximian.com/pipermail/evolution-hackers/2005-August/006271.html

The message gets printed frequently but not always. The following tests from
evolution-data-server have the same behaviour (at least in my machine):


http://cvs.gnome.org/viewcvs/evolution-data-server/calendar/tests/ecal/test-recur.c?rev=1.3&view=markup
http://cvs.gnome.org/viewcvs/evolution-data-server/calendar/tests/ecal/test-search.c?rev=1.2&view=markup
http://cvs.gnome.org/viewcvs/evolution-data-server/addressbook/tests/ebook/test-ebook.c?rev=1.6&view=markup

An easy workaround is to put a sleep before program termination. This will
eventually get rid of the message.

Program 1 that exhibits the bug
-------------------------------
#include <stdio.h>
#include <libebook/e-book.h>
#include <libebook/e-contact.h>
#include <libecal/e-cal.h>
#include <libecal/e-cal-time-util.h>


ECal* open_calendar() {
  ECal* cal;
  GError* error = 0;
  cal = e_cal_new_system_calendar();
  e_cal_open(cal, FALSE, &error);
  if (error)
    printf("ERROR!");
  return cal;
}

static void get_all_appointments() {
  GError* error = 0;
  GList* appts, *l;
  e_cal_get_object_list_as_comp(open_calendar(), "#t",
&appts, &error);
  if(error)
    printf("ERROR");
  for (l = appts; l;l = l->next) {
    ECalComponent *ev_appt = E_CAL_COMPONENT(l->data);
    g_object_unref(ev_appt);
  }
  g_list_free(appts);
  g_object_unref(cal);
}

int main(int argc, char** argv) {

  g_type_init();
  get_all_appointments();

  return 0;
}



Program 2 that exhibits the bug
-------------------------------
#include <stdio.h>
#include <unistd.h>
#include <libebook/e-book.h>
#include <libebook/e-contact.h>
#include <libecal/e-cal.h>
#include <libecal/e-cal-time-util.h>
#include <libbonobo-2.0/libbonobo.h>


gboolean end_program=FALSE;

ECal* open_calendar() {
  ECal* cal;
  GError* error = 0;
  cal = e_cal_new_system_calendar();
  e_cal_open(cal, FALSE, &error);
  if (error)
    printf("ERROR!");
  return cal;
}

static void get_all_appointments() {
  GError* error = 0;
  GList* appts, *l;
  ECal* cal = open_calendar();
  e_cal_get_object_list_as_comp(cal, "#t", &appts, &error);
  if((error)||( e_cal_get_load_state (cal) !=   E_CAL_LOAD_LOADED))
    printf("ERROR\n");
  for (l = appts; l;l = l->next) {
    ECalComponent *ev_appt = E_CAL_COMPONENT(l->data);
    g_object_unref(ev_appt);
  }
  g_list_free(appts);
  g_object_unref(cal);   
}

gboolean cb_work(void *data)
{
  get_all_appointments();
  bonobo_main_quit(); 
  return FALSE;
}


int main(int argc, char** argv) {

  g_type_init();
  bonobo_init(&argc,argv);
  bonobo_activate();
 
  if(bonobo_is_initialized())
    printf("Init (pid %i)\n", getpid());
  g_idle_add(cb_work, NULL); 
  bonobo_main();
  bonobo_debug_shutdown();
  if(!bonobo_is_initialized())
    printf("Not init!\n");
  return 0;
}

Steps to reproduce:
1. Compile one of the above programs
2. Execute 
3. 

Actual results:
The message reported will not be displayed always, but quite frequently on my
machine.

Expected results:
No strange message printed. I actually discovered this when writing some patches
for Tom Copeland's binding revolution

Does this happen every time?
Just quite frequently

Other information:
More information is available in the evolution-hackers thread started here

http://lists.ximian.com/pipermail/evolution-hackers/2005-August/006238.html

with the name "Strange console messages when accessing e-d-s through the libecal
C API."


A brief explanation of the message seems to come from the fact that the CORBA
orb is shutdown while there is a process for completion.

This message is a very probable explanation of what is happening:

http://lists.ximian.com/pipermail/evolution-hackers/2005-August/006272.html
Comment 1 Matthew Barnes 2009-08-25 15:00:42 UTC
I think this has long since been fixed.  Closing as obsolete.