bonobo-activation-server doesn't exit after logout, prevents Bonobo-activated D-Bus applications from working on new login

Bug #90923 reported by Michael R. Head
30
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libbonobo
Invalid
Undecided
Unassigned
libbonobo (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

bonobo-activation-server processes persist across desktop sessions. Unfortunately, its environment is only good for one. In particular, DBUS_SESSION_BUS_ADDRESS becomes stale after the first logout.

This causes any process that is started by bonobo-activation-server to have a stale environment, and hence not be able to use the session bus correctly.

Response from applications varies from silent failure, to error dialogues and process crashes.

Affected Software:
 • Inhibit Applet
 • Music Applet
 • Cohoba
 • Keyboard indicator

-- Original --

I had just made some changes to my xorg.conf, logged out, killed the X server and logged back in to find that my keyboard indicator applet and music applet failed to work properly. The keyboard indicator wouldn't load at all, and I got the (scary) dialog with the "Don't Delete" and "Delete" buttons. When I attempted to launch rhyhtmbox using the music applet, nothing happened. I logged out again, killed the X server again, and logged back in. Same result. I logged out one more time, killed the X server, switch to a terminal and did a "ps axu |grep burner". I saw an evolution data server process and bonobo-activation-server running. I killed the bonobo-activation-server process, logged in, and all was back to normal.

Tags: feisty gutsy
Revision history for this message
Michael R. Head (burner) wrote :

BTW: this is on feisty.

Revision history for this message
Gert Kulyk (gkulyk) wrote :

Is this only bonobo-activation-server or (like on my machine) evolution-data-server-1.10, too? There are 2 processes running after log out from a gnome-session, e-d-s and bonobo-activation-server. The latter gets closed when killing evolution-data-server-1.10 (see LP #90258).

Revision history for this message
Michael R. Head (burner) wrote :

Yes, both are active, but bonobo-activation-server is the one that's causing problems (I don't have to kill e-d-s to have a functioning desktop). I'm willing to accept that this is a dupe of the e-d-s bug, if you think fixing that will automatically fix this.

Revision history for this message
Gert Kulyk (gkulyk) wrote :

Though I still think that the issue with bonobo-activation-server is related to e-d-s, I'm not 100% sure. Does anybody have an idea how to debug this? How can I find out why a certain process will not be closed when logging out?

Revision history for this message
Gert Kulyk (gkulyk) wrote :

Confirming this bug. Should kept open as a bug of libbonobo untill someone can tell for sure that Bug #90258 is the cause for this bug.

Changed in libbonobo:
status: Unconfirmed → Confirmed
Revision history for this message
Alexander Jones (alex-weej) wrote :

This causes havoc with DBus panel applets including Inhibit Applet, Cohoba, Music Applet, because the DBus session bus address environment variable that bonobo-activation-server has is stale after the first session.

Why doesn't bonobo-activation-server get killed when gnome-session ends, like dbus-daemon and others?

description: updated
Revision history for this message
Gert Kulyk (gkulyk) wrote :

I still think that it may be related to e-d-s. The bug only occurs for me when you are using evolution, having set up address-books. E-d-s keeps running then alongside with b-a-s.

At the moment it seems like a bug in libecalbackendcontacts.so prevents closing connection to address-books, which prevents shutting down b-a-s (see comments on Bug #90258 and the according upstream bug-report).

Revision history for this message
Markus Kienast (elias1884) wrote :

This bug is rather important I suppose. I consider it release critical as I can not upgrade my edubuntu LTSP environment to Feisty as long as this bug is out there! I would end up with lots of orphan processes and things not working for my users after relogin. And obviously in an LTSP environment, the users relogin frequently! Nobody is allowed to reboot the server after logout!

Please make sure this will be fixed soon due to its relevance for LTSP environments.

TNX elias

Revision history for this message
warrenc5 (warren-crossing-mofokom) wrote :

I am getting this on the Apple powerbook G3 pre wall street. It's running without a battery and sometimes after it's been off for a while it's date is reset to sometime in 1938. I get the scary errors about delete and undelete

Problem is resolved by open a console and ntpdate or manually set the SYSTEM date with date -s 01/01/2007, logout and log back in,

I have had a careful look at bonobo activate and the config files look normal.

Can anybody else confirm they are getting this error due to a date problem?

Does anyone know why the code would fail based on either the hwclock or system clock?

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

I have the same problem. The problem in here occurs on a thin client server which uses NX. bonobo-activation-server won't shutdown when the gnome-session stop. In this case I think it's the cause of libesd, which is holding the bonobo-activation-server up. What it should do is kill the bonobo server when the gnome session is closed. Also if some library or extension or other server is holding it up.

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

Also the bug is occuring in Ubuntu Edgy

Revision history for this message
Markus Kienast (elias1884) wrote : Re: [Bug 90923] Re: bonobo-activation-server doesn't exit after logout, prevents panel applets from running on new login

Yes it is somehow occurring in Edgy but is does not behave that badly in
my experience. What I see in Edgy are a lot of zombie esd processes. But
no bonobo-activation-server processes at all. While this could be due to
my users not using evolution since we migrated from a KDE environment.

Anyhow, here in Feisty I don't see any zombie esd processes at all. ps
ax just gives me this this:
humbolt 8185 0.0 0.2 39704 3160 ? Ssl 12:22
0:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate
--ior-output-fd=16

How can I find out, what is blocking b-a-s from exiting?

Revision history for this message
Markus Kienast (elias1884) wrote : Re: bonobo-activation-server doesn't exit after logout, prevents panel applets from running on new login

Yes it is somehow occurring in Edgy but is does not behave that badly in
my experience. What I see in Edgy are a lot of zombie esd processes. But
no bonobo-activation-server processes at all. While this could be due to
my users not using evolution since we migrated from a KDE environment.

Anyhow, here in Feisty I don't see any zombie esd processes at all. ps
ax just gives me this this:
humbolt 8185 0.0 0.2 39704 3160 ? Ssl 12:22
0:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate
--ior-output-fd=16

How can I find out, what is blocking b-a-s from exiting?

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

I use lsof -p <pidnr> to check which files it has openen. I compare the result then with different instances to find out where bonobo is busy with.

Revision history for this message
Markus Kienast (elias1884) wrote :

What does it cost to get this bug fixed?

Here is an idea which could significantly improve Ubuntu's but fixing performance:
Users should be offered a way to bid on a bug-fix.
When the bug is fixed, the people who have contributed to fixing the code get the money.

Technically you donate money to Ubuntu dedicated to one specific bug. The money however stays in your account at Ubuntu until the bug is fixed. Ubuntu can either hire a person to fix the bug or pay out the money to volunteers who contributed to the bug-fix on their own initiative.

I am certain, there are many people/organizations out there, who would pay to get a particular bug fixed!

Revision history for this message
Markus Kienast (elias1884) wrote :

As I said before, this bug prevents me from upgrading my thin-client environment from Edgy to Feisty. And it will prevent me from rolling out more such systems.

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

Elias, are you using LTSP? I will test the same setting on a Feisty environment in a couple of days/weeks and I will see if it also will occur up there.

Elias, what you could do as workaround is trying to fix the following:
Check for all bonobo-activation-servers running, if there are some running of users who aren't login, kill them (the hard way). This is a ugly hack, I know, but the bug isn't yet solved.

I've read somewhere (on the gnome project pages i guess) that they want to deprecate the use of bonobo in favor of D-Bus. This would be a better choice, because D-Bus is much better and also much easier to understand for the developers. I hope they will kill bonobo soon.

Revision history for this message
Markus Kienast (elias1884) wrote :

I am using LTSP in Edgy but I wont upgrade until this bug here is fixed.

Revision history for this message
Glen Turner (gdt-gdt) wrote :

WarrrenC said "I am getting this on the Apple powerbook G3 pre wall street. It's running without a battery and sometimes after it's been off for a while it's date is reset to sometime in 1938."

Just ran my battery flat on a PowerBook G4. Applied AC and booted. Got the same messages as WarrenC. The hardware clock said the date was in 1904, which suggests two things: (1) these machines have no independent battery for the hardware clock and (2) the hardware clock can hold values earlier than the system clock.

The system clock contains some date in the future, not 1970-01-01 00:00:00 as might be expected. So there's a bug in hwclock (although this will need a command line flag to fix). That bizaare date throws bonobo-activation-server. It would be well worth someone's time to inspect the b-a-s code looking for date handling and its edge cases.

LTSP people having difficulties might want to check the system time and perhaps use ntpdate as a ifup script.

Revision history for this message
Glen Turner (gdt-gdt) wrote :
Revision history for this message
Glen Turner (gdt-gdt) wrote :

Similar experience also recorded at http://ubuntuforums.org/archive/index.php/t-6140.html

Revision history for this message
Glen Turner (gdt-gdt) wrote :

Downloaded source for libbonobo-2.18.0 via apt-get. activation-server/object-directory-corba.c time_t comparisons in update_registry() has unhandled edge case when large system time results in negative time(). difftime() should be used to compare time_t values for less or greater.

Revision history for this message
Alexander Jones (alex-weej) wrote :

Glen, I don't think this is the same bug...

Revision history for this message
warrenc5 (warren-crossing-mofokom) wrote : Re: [Bug 90923] Re: bonobo-activation-server doesn't exit after logout, prevents panel applets from running on new login

It has the same symptoms, this is one aspect of the bug, congrats, I
take my hat off to glen for finding the actual code site of [one of] the
  bug.

One of the developers will fix it for sure.

Alex Jones wrote:
> Glen, I don't think this is the same bug...
>

Revision history for this message
Glen Turner (gdt-gdt) wrote : Re: bonobo-activation-server doesn't exit after logout, prevents panel applets from running on new login

Hi Alex,
Yeah. I think we have two bugs here. One where b-a-s mishandles time and one where b-a-s waits for all clients to finish and if a client hangs about then b-a-s does not exit but does not handle new incoming requests either. I've only looked at the first, on the selfish grounds that this is what bites me. I'm a bit surprised that people are having trouble reproducing the second (say by running the test client in the b-a-s test code with a breakpoint before it closes the connection).

I'll create a new bug report for the time issue and leave you with the other one.
Best wishes, Glen

Revision history for this message
Michael R. Head (burner) wrote :

FYI: I'm still seeing this on gutsy (music-applet crashes and keyboard indicator isn't localized -- reads "us" instead of "USA").

Revision history for this message
Alexander Jones (alex-weej) wrote :

I've written a patch to attach b-a-s's lifespan to the DBus session bus. You can get it upstream at http://bugzilla.gnome.org/show_bug.cgi?id=470051

This fixes the problems described in this bug.

Changed in libbonobo:
status: Unknown → New
Revision history for this message
Alexander Jones (alex-weej) wrote :

It has become apparent that bonobo-activation-server is not supposed to be per-session anyway.

I want to close this bug, since it is based on an incorrect assumption. It is the applets that are at fault, and I am fixing them now:

Music Applet: https://bugs.launchpad.net/ubuntu/+source/music-applet/+bug/93284
Inhibit Applet: http://bugzilla.gnome.org/show_bug.cgi?id=470481
Keyboard Indicator: http://bugzilla.gnome.org/show_bug.cgi?id=470496
Cohoba: is dead, no need to fix

Changed in libbonobo:
status: Confirmed → Invalid
status: New → Invalid
Revision history for this message
Markus Kienast (elias1884) wrote :

Disk Mounter 2.18.0 applet is affected as well.

Revision history for this message
Markus Kienast (elias1884) wrote :

Alex:
Will the fixes you made make it into gutsy?

Revision history for this message
Alexander Jones (alex-weej) wrote :

Disk Mounter bug at: http://bugzilla.gnome.org/show_bug.cgi?id=471889

Hopefully they will, but I don't know at all.

Revision history for this message
Markus Kienast (elias1884) wrote : Re: [Bug 90923] Re: bonobo-activation-server doesn't exit after logout, prevents Bonobo-activated D-Bus applications from working on new login

On Thu, 2007-08-30 at 15:29 +0000, Alex Jones wrote:
> Disk Mounter bug at: http://bugzilla.gnome.org/show_bug.cgi?id=471889
>
> Hopefully they will, but I don't know at all.
>

Alex:

I saw the patch you attached to the Disk Mounter Bug and I am surprised
how short it actually is.

3 lines of code fix this? This is not meant to despise the efforts which
have been necessary to find out that these 3 lines would actually fix
the whole problem, I am just curious why these 3 lines fix this.

If you don't want to waste your time to explain, I totally understand
that. Yet I am seriously curious, what these lines mean and would feel
honoured if you could give me an insight.

elias

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

It is still the same on the Gutsy platform.

An strace on the bonobo-activation-server daemon, gives it is "hanging" on poll();
0xb7bf95e7 in poll () from /lib/tls/i686/cmov/libc.so.6

It does not occur always though.

Revision history for this message
Markus Kienast (elias1884) wrote :

This bug has only been somewhat resolved. When I log out, and wait a certain amount of time, then everything works. But dare me logging in right after logout!

Check out the screenshot!

Revision history for this message
Markus Kienast (elias1884) wrote :

Does Upstream ever read this bug tracker, or are all our comments
actually useless and we should rather report our problems to the GNOME
bug tracker directly?

Revision history for this message
Markus Kienast (elias1884) wrote :

I lately ran into some problems with GnuPG in Evolution. Trying to
determine the source of the problem, I removed the seahorse and the
gnupg-agent package.

And suddenly, I did not see any more left over processes after logout.
It appears as these two packages might have something to do with the
weird e-d-s behaviour, causing panel applets to not work anymore after
login, as they continue running.

It could be that failure to kill the seahorse or gnupg-agent prevent
shutting down other Xsession processes.

Maybe somebody can confirm my findings.

As both packages are not installed by default in Ubuntu-desktop, this
might explain, why only few of us are seeing the problems described in
this bug.

Revision history for this message
Markus Kienast (elias1884) wrote :

I just tested it again. When I have seahorse installed, multiple
processes remain running after GNOME logout.

Which leads to this screen on next login:
http://launchpadlibrarian.net/10301226/Screenshot.png

Revision history for this message
Markus Kienast (elias1884) wrote :

Removing seahorse does help a bit, but does not correct the problem
completely. Some processes keep running. And some actually freak out
with 100% CPU consumption.

This is just ridiculous.

I am stuck with EDGY for that very reason. I simply can't afford such a
bug in an LTSP enabled network. I would have to SSH in all the time and
kill processes so people can successfully log in.

This is one of them bugs, which makes Ubuntu unusable for enterprise
deployments. If this bug persists until Hardy lots of Linux enthusiasts
will be really disappointed.

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

For temporary problem solving, see the following URL's:
http://www.nabble.com/Package-gnome-watchdog---cleans-up-gnome-user-session-t4748478.html
http://<email address hidden>/msg02269.html

I don't have seahorse installed on the systems, which have this problem. Also gnome-panel, gconf-2 or totem (on edgy anyway) could leave it runing. On Gutsy I only saw gconf-2 doing that and bonbo itself, with no other processes.

Revision history for this message
Michiel Eghuizen (michieleghuizen) wrote :

If you can't download gnome-watchdog by the normal link, you can download it from rapidshare: http://rapidshare.com/files/69431248/gnome-watchdog_0.9.2_i386.deb.html

I've uploaded it, because the original site seems down.

Revision history for this message
Markus Kienast (elias1884) wrote :

I confirm gconf-2 and bonobo-act-serv are the processes which are left
running the most often. Both very often all by themselves.

Revision history for this message
robepisc (robepisc) wrote :

For others affected by the HW clock issue discovered by Glen Turner (see his comments above), I think bug #422215 is the one to look at.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.