max_outgoing_bytes: What if a D-Bus peer is too slow to read?
Alban Crequy
alban.crequy at collabora.co.uk
Fri Oct 1 05:55:56 PDT 2010
Le Thu, 30 Sep 2010 16:38:42 -0400,
Havoc Pennington <hp at pobox.com> a écrit :
> No guarantee any of this works properly. Turn on DBUS_VERBOSE (see
> "man dbus-daemon" section DEBUGGING) and you can see what happens
> probably.
Then I see this message:
2121: [bus.c(1615):bus_context_check_security_policy] security policy
disallowing message due to full message queue
The message is silently not delivered to the recipient who has a full
outgoing queue. It is still delivered to other recipients, if any.
bus.c:bus_context_check_security_policy()
/* See if limits on size have been exceeded */
if (proposed_recipient &&
((dbus_connection_get_outgoing_size (proposed_recipient) > context->limits.max_outgoing_bytes) ||
(dbus_connection_get_outgoing_unix_fds (proposed_recipient) > context->limits.max_outgoing_unix_fds)))
{
dbus_set_error (error, DBUS_ERROR_LIMITS_EXCEEDED,
"The destination service \"%s\" has a full message queue",
dest ? dest : (proposed_recipient ?
bus_connection_get_name (proposed_recipient) :
DBUS_SERVICE_DBUS));
_dbus_verbose ("security policy disallowing message due to full message queue\n");
return FALSE;
}
More information about the dbus
mailing list