2007-01-26 Havoc Pennington <hp@redhat.com>
authorHavoc Pennington <hp@redhat.com>
Fri, 26 Jan 2007 16:10:26 +0000 (16:10 +0000)
committerHavoc Pennington <hp@redhat.com>
Fri, 26 Jan 2007 16:10:26 +0000 (16:10 +0000)
* 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

ChangeLog
bus/config-parser.c
bus/session.conf.in

index 3a2669d..eb788c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index dbffd3f..db46893 100644 (file)
@@ -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;
index 344efc5..962a198 100644 (file)
 
   <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>