Ver código fonte

Fix crash when displaying resource limit error. Closes #562

This reverts commit 16962a9284e38ef83dfabf1b88ebff220288fb59.

Conflicts:
	supervisor/options.py
	supervisor/tests/test_datatypes.py
Mike Naberezny 10 anos atrás
pai
commit
ac5baef5d5
4 arquivos alterados com 15 adições e 12 exclusões
  1. 3 0
      CHANGES.txt
  2. 4 4
      supervisor/datatypes.py
  3. 6 6
      supervisor/options.py
  4. 2 2
      supervisor/tests/test_datatypes.py

+ 3 - 0
CHANGES.txt

@@ -51,6 +51,9 @@
 - Files included via the `[include]` section are read in sorted order.  In
   past versions, the order was undefined.  Patch by Ionel Cristian Mărieș.
 
+- Fixed a bug introduced in 3.1.0 where ``supervisord`` could crash when
+  attempting to display a resource limit error.
+
 3.1.3 (2014-10-28)
 ------------------
 

+ 4 - 4
supervisor/datatypes.py

@@ -113,9 +113,9 @@ def logfile_name(val):
 class RangeCheckedConversion:
     """Conversion helper that range checks another conversion."""
 
-    def __init__(self, conversion, rmin=None, rmax=None):
-        self._min = rmin
-        self._max = rmax
+    def __init__(self, conversion, min=None, max=None):
+        self._min = min
+        self._max = max
         self._conversion = conversion
 
     def __call__(self, value):
@@ -128,7 +128,7 @@ class RangeCheckedConversion:
                              % (repr(v), repr(self._max)))
         return v
 
-port_number = RangeCheckedConversion(integer, rmin=1, rmax=0xffff).__call__
+port_number = RangeCheckedConversion(integer, min=1, max=0xffff).__call__
 
 def inet_address(s):
     # returns (host, port) tuple

+ 6 - 6
supervisor/options.py

@@ -1369,7 +1369,7 @@ class ServerOptions(Options):
 
         for limit in limits:
 
-            lmin = limit['min']
+            min = limit['min']
             res = limit['resource']
             msg = limit['msg']
             name = limit['name']
@@ -1377,15 +1377,15 @@ class ServerOptions(Options):
 
             soft, hard = resource.getrlimit(res)
 
-            if (soft < lmin) and (soft != -1): # -1 means unlimited
-                if (hard < lmin) and (hard != -1):
+            if (soft < min) and (soft != -1): # -1 means unlimited
+                if (hard < min) and (hard != -1):
                     # setrlimit should increase the hard limit if we are
                     # root, if not then setrlimit raises and we print usage
-                    hard = lmin
+                    hard = min
 
                 try:
-                    resource.setrlimit(res, (lmin, hard))
-                    msgs.append('Increased %(name)s limit to %(lmin)s' %
+                    resource.setrlimit(res, (min, hard))
+                    msgs.append('Increased %(name)s limit to %(min)s' %
                                 locals())
                 except (resource.error, ValueError):
                     self.usage(msg % locals())

+ 2 - 2
supervisor/tests/test_datatypes.py

@@ -240,8 +240,8 @@ class RangeCheckedConversionTests(unittest.TestCase):
     def _getTargetClass(self):
         return datatypes.RangeCheckedConversion
 
-    def _makeOne(self, conversion, rmin=None, rmax=None):
-        return self._getTargetClass()(conversion, rmin, rmax)
+    def _makeOne(self, conversion, min=None, max=None):
+        return self._getTargetClass()(conversion, min, max)
 
     def test_below_lower_bound(self):
         conversion = self._makeOne(lambda *arg: -1, 0)