GNOME Bugzilla – Bug 151082
bonobo-activation-server does not find new servers unless it is restarted
Last modified: 2006-08-12 13:39:00 UTC
When installing a new .server file, bonobo-activation-server needs to be restarted to find it. The typical situation is that the user installs a new program and immediately runs it: bonobo_activation_register_active_server() fails. Annoying. A quick look at the code makes me think that there should be an update_registry() call in impl_Bonobo_ObjectDirectory_register_new_full(). Btw, why don't you use FAM to monitor the directories?
We should be doing a stat every 5 seconds of real-use to detect new files added to the directories; and then flushing client caches / re-loading if we detect a change. As you say - this has not been working for some time which sucks rocks - we should fix it, but I havn't had a chance to look at it in a while. The code is in activation-server/object-directory-corba.c (update_registry) & (registry_directory_needs_update).
Is this problem still there?
no idea - it needs careful testing; I've not done that.
I have just tested this in GNOME 2.14 (not HEAD); it seems to work fine with activate-client -q -s "iid == 'something'"; if you drop a .server file in a bonobo server directory, b-a-s instantly sees it. But it doesn't work for the case of a factory registering a factory, so the reporter is right.
Now tested in HEAD and it's definitely fixed. Whoever did it, nice work :-)
*** Bug 326085 has been marked as a duplicate of this bug. ***