Browse Source

Provide more context in spawn error messages. Refs #87

Mike Naberezny 10 years ago
parent
commit
2e645f1dfc
2 changed files with 10 additions and 7 deletions
  1. 4 3
      supervisor/process.py
  2. 6 4
      supervisor/tests/test_process.py

+ 4 - 3
supervisor/process.py

@@ -227,7 +227,8 @@ class Subprocess(object):
                 # too many file descriptors open
                 msg = 'too many open files to spawn %r' % self.config.name
             else:
-                msg = 'unknown error: %s' % errno.errorcode.get(code, code)
+                msg = ('unknown error making dispatchers: %s' %
+                       errno.errorcode.get(code, code))
             self.record_spawnerr(msg)
             self._assertInState(ProcessStates.STARTING)
             self.change_state(ProcessStates.BACKOFF)
@@ -242,8 +243,8 @@ class Subprocess(object):
                 msg  = ('Too many processes in process table to spawn %r' %
                         self.config.name)
             else:
-                msg = 'unknown error: %s' % errno.errorcode.get(code, code)
-
+                msg = ('unknown error during fork: %s' %
+                       errno.errorcode.get(code, code))
             self.record_spawnerr(msg)
             self._assertInState(ProcessStates.STARTING)
             self.change_state(ProcessStates.BACKOFF)

+ 6 - 4
supervisor/tests/test_process.py

@@ -247,9 +247,10 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         result = instance.spawn()
         self.assertEqual(result, None)
-        self.assertEqual(instance.spawnerr, 'unknown error: EPERM')
+        self.assertEqual(instance.spawnerr,
+                         'unknown error making dispatchers: EPERM')
         self.assertEqual(options.logger.data[0],
-                         "spawnerr: unknown error: EPERM")
+                         "spawnerr: unknown error making dispatchers: EPERM")
         self.assertTrue(instance.delay)
         self.assertTrue(instance.backoff)
         from supervisor.states import ProcessStates
@@ -298,9 +299,10 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         result = instance.spawn()
         self.assertEqual(result, None)
-        self.assertEqual(instance.spawnerr, 'unknown error: EPERM')
+        self.assertEqual(instance.spawnerr,
+                         'unknown error during fork: EPERM')
         self.assertEqual(options.logger.data[0],
-                         "spawnerr: unknown error: EPERM")
+                         "spawnerr: unknown error during fork: EPERM")
         self.assertEqual(len(options.parent_pipes_closed), 6)
         self.assertEqual(len(options.child_pipes_closed), 6)
         self.assertTrue(instance.delay)