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 268533 - evolution-alarm-notify appears to cause an e_data_book leak in evolution-data-server
evolution-alarm-notify appears to cause an e_data_book leak in evolution-data...
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
2.0.x (obsolete)
Other All
: Normal normal
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2004-10-18 22:35 UTC by Dave Malcolm
Modified: 2013-09-10 14:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dave Malcolm 2004-10-18 22:35:26 UTC
Please fill in this template when reporting a bug, unless you know what you
are doing.
Description of Problem:



Steps to reproduce the problem:
1. log in
2. start evolution
3. quit evolution
4. log out
5. log in at a terminal as the same user, and type "ps x"

Actual Results:
evolution-data-server is still around, attaching to it with gdb reveals the
following:
(gdb) print e_data_cal_factory_get_n_backends(e_data_cal_factory)
$5 = 0
(gdb) print e_data_book_factory_get_n_backends(e_data_book_factory)
$6 = 1

So we've leaked an addressbook somewhere...

After some investigation, I found that if I hack away the
GNOME_Evolution_Addressbook_2.0.server file, then the problem goes away. 
So my theory is that evolution-alarm-notify is leaking an addressbook
somewhere.  The persisting e_data_book has URL:
file:///home/test/.evolution/addressbook/local/system

I've been stepping through the shutdown of evolution-alarm-notify; it's
receiving "die" signals from the session manager, and seems to be closing
itself down correctly.

Expected Results:
evolution-data-server should have all of its backends closed down
gracefully, and should quit 5 seconds later.

How often does this happen? 
100%

Additional Information:
Comment 1 Dave Malcolm 2004-10-20 04:31:52 UTC
It appears that e_cal_backend_contacts_finalize is never called, which
might explain things - this owns an EBook
Comment 2 Dave Malcolm 2004-10-20 04:45:34 UTC
In, fact e_cal_backend_finalise appears to be never called either, and
this is after this:
(gdb) print e_data_cal_factory_get_n_backends (e_data_cal_factory)
$1 = 0

So I suspect that e_data_cal_factory is leaking references to the
backends, and that the "contacts" calendar backend is holding open a
connection to the local contacts backend, which is keeping e-d-s alive
Comment 3 Sivaiah 2004-10-20 06:06:06 UTC
i can confirm what Dave has seen, finalize mehtods of calendar
backends neever gets called. We unref the backend in
backend_last_client_gone_cb in e-data-cal-factory.c , but since the
ref count is more than one at that point of time, dispose and finalize
 are not getting invoked. Since contacts calendar backend has not been
cleaned up and and it is holding references to EBook which is talking
to local address book backend, e-d-s  never goes down. If one removes
the contacts calendar group from gconf e-d-s goes down properly, so
this also confirms this.
Comment 4 JP Rosevear 2005-03-21 15:26:18 UTC
Fixed in 2.2.1, e-d-s now exits properly when all clients die.  We
should fixing this in a more general way though, for instance if we do
a calendar backend that includes tasks, we'll have the same internal
reference problem we have now.
Comment 5 André Klapper 2005-05-15 22:47:38 UTC
adding perf keyword
Comment 6 Chenthill P 2005-08-23 14:09:18 UTC
Closing this as it has been fixed.
Comment 7 David Planella 2007-03-18 18:11:51 UTC
Having experienced 

e-d-s does not exit with gnome-session
https://launchpad.net/bugs/90258

Could it be that this bug has reappeared?