diff options
| author | Havoc Pennington <hp@redhat.com> | 2007-01-26 16:10:26 +0000 | 
|---|---|---|
| committer | Havoc Pennington <hp@redhat.com> | 2007-01-26 16:10:26 +0000 | 
| commit | 8d3d8ff55739eebd84d0d53a20a025329feafc3b (patch) | |
| tree | e33f2217a6a05fe89aaec30337ba339fc6a08821 | |
| parent | 5284ed3979d7c27f84bd0496682fb63b5e60ed5f (diff) | |
2007-01-26  Havoc Pennington  <hp@redhat.com>
	* bus/session.conf.in: override all the default limits with much
	higher limits on the session bus, there is no reason the session
	bus should have low limits
	* bus/config-parser.c (bus_config_parser_new): increase default
	limits so they are less likely to be hit; in particular the max
	replies per connection was way too low
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | bus/config-parser.c | 20 | ||||
| -rw-r--r-- | bus/session.conf.in | 23 | 
3 files changed, 45 insertions, 8 deletions
@@ -1,3 +1,13 @@ +2007-01-26  Havoc Pennington  <hp@redhat.com> + +	* bus/session.conf.in: override all the default limits with much +	higher limits on the session bus, there is no reason the session +	bus should have low limits + +	* bus/config-parser.c (bus_config_parser_new): increase default +	limits so they are less likely to be hit; in particular the max +	replies per connection was way too low +  2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>  	* doc/dbus-tutorial.xml: Replace Python section of tutorial with diff --git a/bus/config-parser.c b/bus/config-parser.c index dbffd3ff..db46893a 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -460,8 +460,8 @@ bus_config_parser_new (const DBusString      *basedir,      {        /* Make up some numbers! woot! */ -      parser->limits.max_incoming_bytes = _DBUS_ONE_MEGABYTE * 63; -      parser->limits.max_outgoing_bytes = _DBUS_ONE_MEGABYTE * 63; +      parser->limits.max_incoming_bytes = _DBUS_ONE_MEGABYTE * 127; +      parser->limits.max_outgoing_bytes = _DBUS_ONE_MEGABYTE * 127;        parser->limits.max_message_size = _DBUS_ONE_MEGABYTE * 32;        /* Making this long means the user has to wait longer for an error @@ -476,22 +476,26 @@ bus_config_parser_new (const DBusString      *basedir,         */        parser->limits.auth_timeout = 30000; /* 30 seconds */ -      parser->limits.max_incomplete_connections = 32; -      parser->limits.max_connections_per_user = 128; +      parser->limits.max_incomplete_connections = 64; +      parser->limits.max_connections_per_user = 256;        /* Note that max_completed_connections / max_connections_per_user         * is the number of users that would have to work together to         * DOS all the other users.         */ -      parser->limits.max_completed_connections = 1024; +      parser->limits.max_completed_connections = 2048; -      parser->limits.max_pending_activations = 256; -      parser->limits.max_services_per_connection = 256; +      parser->limits.max_pending_activations = 512; +      parser->limits.max_services_per_connection = 512;        parser->limits.max_match_rules_per_connection = 512;        parser->limits.reply_timeout = 5 * 60 * 1000; /* 5 minutes */ -      parser->limits.max_replies_per_connection = 32; + +      /* this is effectively a limit on message queue size for messages +       * that require a reply +       */ +      parser->limits.max_replies_per_connection = 1024*8;      }    parser->refcount = 1; diff --git a/bus/session.conf.in b/bus/session.conf.in index 344efc54..962a1982 100644 --- a/bus/session.conf.in +++ b/bus/session.conf.in @@ -27,4 +27,27 @@    <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include> +  <!-- For the session bus, override the default relatively-low limits  +       with essentially infinite limits, since the bus is just running  +       as the user anyway, using up bus resources is not something we need  +       to worry about. In some cases, we do set the limits lower than  +       "all available memory" if exceeding the limit is almost certainly a bug,  +       having the bus enforce a limit is nicer than a huge memory leak. But the  +       intent is that these limits should never be hit. --> + +  <!-- the memory limits are 1G instead of say 4G because they can't exceed 32-bit signed int max --> +  <limit name="max_incoming_bytes">1000000000</limit> +  <limit name="max_outgoing_bytes">1000000000</limit> +  <limit name="max_message_size">1000000000</limit> +  <limit name="service_start_timeout">120000</limit>   +  <limit name="auth_timeout">240000</limit> +  <limit name="max_completed_connections">100000</limit>   +  <limit name="max_incomplete_connections">10000</limit> +  <limit name="max_connections_per_user">100000</limit> +  <limit name="max_pending_service_starts">10000</limit> +  <limit name="max_names_per_connection">50000</limit> +  <limit name="max_match_rules_per_connection">50000</limit> +  <limit name="max_replies_per_connection">50000</limit> +  <limit name="reply_timeout">300000</limit> +  </busconfig>  | 
