method timeouts vs systemd activation and slow systems

Colin Walters walters at verbum.org
Fri Mar 17 14:09:50 UTC 2023



On Wed, Mar 8, 2023, at 3:04 AM, David Rheinsberg wrote:
> Hi
>
> On Mon, Mar 6, 2023, at 1:39 PM, Simon McVittie wrote:
>> There are some timeouts in the "limits" data structure of the message
>> bus implementation (dbus-daemon or dbus-broker) which are somewhat
>> orthogonal to the client-side method call timeout. In dbus-daemon
>> configuration language:
>>
>> * service_start_timeout (default 25s)
>> * auth_timeout (default 5s)
>> * pending_fd_timeout (default 150s)
>
> For the record, we do not use those timeouts in dbus-broker. 
> "Service-start" is under control of systemd, and for the other two we 
> do not implement the timeouts since we have resource accounting in both 
> situations (which requires rather recent linux APIs and does not 
> necessarily have an equivalent on other platforms).
>
>
> Regarding the proposal: I can only recommend dropping timeouts in dbus 
> transactions.

Yeah, fair.  I agree overall with the long term direction.  The risk here though is that anyone doing *synchronous* dbus calls from a mainloop now need to kill the app and restart if the target service fails to respond.

For system components (e.g. system daemons or gnome-shell type things) I would really hope for example there aren't any synchronous calls.  But if there are, then the UX for a desktop user is they may need to power cycle.

> Lastly, note that whenever you "timeout" a method-transaction in a 
> dbus-client, you leak the reply-window in the server. Unless the other 
> side eventually replies or disconnects, you will accumulate those 
> reply-windows and eventually reach your resource limit.

Ah, ouch.


More information about the dbus mailing list