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 365206 - regression in detection of broken connection
regression in detection of broken connection
Status: RESOLVED INCOMPLETE
Product: bonobo
Classification: Deprecated
Component: libbonobo
2.14.x
Other All
: Normal major
: ---
Assigned To: Michael Meeks
bonobo qa
Depends on:
Blocks:
 
 
Reported: 2006-10-26 07:54 UTC by Jean-Yves Lefort
Modified: 2007-12-02 16:54 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16


Attachments
fix (775 bytes, patch)
2006-10-26 07:54 UTC, Jean-Yves Lefort
none Details | Review

Description Jean-Yves Lefort 2006-10-26 07:54:09 UTC
1) Disable /apps/nautilus/preferences/show_desktop and make sure nautilus is not running.
2) Start nautilus.
3) Quit it gently by closing the window.
4) Start bonobo-browser and observe that the "Nautilus factory" server is listed as active even though Nautilus is no longer running.
5) Start nautilus again; since the server is still considered active, bad things occur: the server cannot be activated and several nautilus processes are forked until the activation can finally happen.
6) Kill all the nautilus processes.
7) Start nautilus.
8) Send nautilus a SIGTERM.
9) Start bonobo-browser and observe that the "Nautilus factory" is this time properly listed as inactive.
10) Conclude that libbonobo no longer detects a connection drop unless the server process is killed.

Regression introduced by: http://cvs.gnome.org/viewcvs/libbonobo/activation-server/object-directory-corba.c?r1=1.81&r2=1.82

Fix attached.
Comment 1 Jean-Yves Lefort 2006-10-26 07:54:34 UTC
Created attachment 75426 [details] [review]
fix
Comment 2 Michael Meeks 2006-10-26 09:52:16 UTC
Sounds really bad - and thanks for the fix.
On the other hand I'm confused:

* why does b-a-s ever exit on Linux ? - I am assuming it does of course ;-)

* why is connecting to "broken" different to using the ORBit_small_listen_for_broken ?

The latter is I think preferable for threading reasons - the 'broken' signal is not public API (or not intended to be), and [AFAIR] the 'broken' signal gets emitted in the I/O thread(?) (or somesuch) which can cause serious grief.

So - it'd be great to get a better understanding of your change & why it's necessary. Is it really the case that b-a-s never exits for a default desktop ? Can you compile with BONOBO_ACTIVATION_DEBUG enabled, [ read the debugging tips in activation-server/README ].

Thanks again.
Comment 3 Michael Meeks 2006-10-26 09:57:45 UTC
It might also be worth compiling ORBit2/linc2 with debugging information too.
Comment 4 Jean-Yves Lefort 2006-10-26 10:06:56 UTC
By "server process" I mean the process that provides the server (in my example nautilus), not b-a-s.

I have no idea why the broken signal is different.
Comment 5 Kjartan Maraas 2007-01-11 13:57:23 UTC
Could you get us the debugging information that Michael asked for?
Comment 6 Kjartan Maraas 2007-03-23 14:46:03 UTC
Ping?
Comment 7 Kjartan Maraas 2007-12-02 16:54:33 UTC
Closing this since we don't have enough information to go on. Feel free to reopen if you can provide the information Michael asked for.