Browse Source

Log a debug message if EPIPE occurs writing to listener process

Mike Naberezny 10 năm trước cách đây
mục cha
commit
a068687983
2 tập tin đã thay đổi với 9 bổ sung1 xóa
  1. 5 0
      supervisor/process.py
  2. 4 1
      supervisor/tests/test_process.py

+ 5 - 0
supervisor/process.py

@@ -862,6 +862,11 @@ class EventListenerPool(ProcessGroupBase):
                 except OSError as why:
                     if why.args[0] != errno.EPIPE:
                         raise
+
+                    self.config.options.logger.debug(
+                        'epipe occurred while sending event %s '
+                        'to listener %s, listener state unchanged' % (
+                        event.serial, process.config.name))
                     continue
 
                 process.listener_state = EventListenerStates.BUSY

+ 4 - 1
supervisor/tests/test_process.py

@@ -1797,7 +1797,10 @@ class EventListenerPoolTests(ProcessGroupBaseTests):
         self.assertEqual(process1.listener_state, EventListenerStates.READY)
         self.assertEqual(pool.event_buffer, [event])
         self.assertEqual(options.logger.data[0],
-                         'rebuffering event abc for pool whatever (bufsize 0)')
+            'epipe occurred while sending event abc to listener '
+            'process1, listener state unchanged')
+        self.assertEqual(options.logger.data[1],
+            'rebuffering event abc for pool whatever (bufsize 0)')
 
     def test__acceptEvent_attaches_pool_serial_and_serial(self):
         from supervisor.process import GlobalSerial