Here is an internal patch that we're using in Nokia 770, it does the following: 1) Sets the activated process' priority to the default priority (0). This allows prioritising the daemon differently from the activated process. 2) Creates a new session and process group for the activated process. This allows sending a signal to the whole process group with killpg().
Created attachment 7687 [details] [review] proposed patch
Thanks for the patch. I assume this is aimed at the system bus? It doesn't seem appropriate for the session bus necessarily; there, apps in the session probably should remain in the same session group, and if the session has a special priority it should likely keep it. This would argue for some kind of config flag for whether to do this (and in fact, for whether the main bus should change its own priority) John, let's aim for 1.0.1 or something on this rather than break 1.0.0 freeze, no?
I agree with waiting until 1.0.1. Embeded users can patch for now and when 1.0 comes out pretty soon we can branch and commit this to HEAD and a 1.0.1 branch.
Hmm, this never got applied. I'm wondering if this doesn't make sense for the session do we need to add code to only do this when system activating
A couple other notes on this patch, - there's a brace in the wrong spot - I'm not sure the _dbus_warn is a good idea, since it either can't happen or will happen, and printing to stderr is not really going to be visible. Probably need to either return the error, assert() that it did not fail, or just silently let it fail, depending on why/when it might fail.
Bugzilla Upgrade Mass Bug Change NEEDSINFO state was removed in Bugzilla 3.x, reopening any bugs previously listed as NEEDSINFO. - benjsc fd.o Wrangler
We could probably move this patch into the system activation helper binary.
Is there a version of this patch rebased to current dbus-1.2?
I'll ask the current Maemo D-Bus maintainer...
Created attachment 34136 [details] [review] proposed patch for dbus 1.3 Here is the current patch we are using. Just remove that #ifdef garbage from the beginning.
Created attachment 41679 [details] [review] reset priority and scheduler, and make a process group I don't think Attachment #34136 [details] is the patch you meant to attach: it replaces setgroups() with initgroups(), which is orthogonal to this discussion. Here's the one I think you meant? (taken from <http://maemo.gitorious.org/maemo-gnome-essentials/dbus>)
Comment on attachment 41679 [details] [review] reset priority and scheduler, and make a process group Review of attachment 41679 [details] [review]: ----------------------------------------------------------------- It calls setsid rather than setpgid so if it's a user session service will be activaed, then it will out of the user's session. I think that's incorrect.
I suspect the long-term answer to this is WONTFIX: systemd-based activation (or, in Ubuntu's patchset, Upstart-based activation) isolates activated processes much better than dbus-daemon ever could. I suspect the best way to have better isolation on non-systemd, non-Upstart systems would be to have a daemon running as root which implements the (small) subset of systemd's API that dbus-daemon uses.
(In reply to comment #13) > I suspect the long-term answer to this is WONTFIX: systemd-based activation > (or, in Ubuntu's patchset, Upstart-based activation) isolates activated > processes much better than dbus-daemon ever could. Doing so.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.