Browse Source

Show serial numbers instead of event reprs.

Chris McDonough 18 năm trước cách đây
mục cha
commit
5216f52188
2 tập tin đã thay đổi với 15 bổ sung9 xóa
  1. 8 5
      src/supervisor/process.py
  2. 7 4
      src/supervisor/tests/test_process.py

+ 8 - 5
src/supervisor/process.py

@@ -567,7 +567,7 @@ class EventListenerPool(ProcessGroupBase):
             if not ok:
                 self.config.options.logger.log(self.config.options.TRACE,
                                                'Failed sending buffered event '
-                                               '%s' % event)
+                                               '%s' % event.serial)
                 self.event_buffer.insert(0, event)
 
     def _eventEnvelope(self, event_type, serial, payload):
@@ -588,11 +588,11 @@ class EventListenerPool(ProcessGroupBase):
                 discarded_event = self.event_buffer.pop(0)
                 notify(EventBufferOverflowEvent(self, discarded_event))
                 self.config.options.logger.info(
-                    'pool %s event buffer overflowed, discarding %s' % (
-                    (self.config.name, discarded_event)))
+                    'pool %s event buffer overflowed, discarding event %s' % (
+                    (self.config.name, discarded_event.serial)))
         self.config.options.logger.log(self.config.options.TRACE,
                                        'pool %s busy, buffering event %s' % (
-                                           (self.config.name, event)))
+                                           (self.config.name, event.serial)))
         self.event_buffer.append(event)
 
     def _dispatchEvent(self, event, buffer=True):
@@ -621,10 +621,13 @@ class EventListenerPool(ProcessGroupBase):
                     if why[0] != errno.EPIPE:
                         raise
                     continue
+                
                 process.listener_state = EventListenerStates.BUSY
                 process.event = event
+                self.config.options.logger.log(
+                    self.config.options.TRACE,
+                    'event %s sent to listener' % event.serial)
                 return True
-
         if buffer:
             self._bufferEvent(event)
         return False

+ 7 - 4
src/supervisor/tests/test_process.py

@@ -994,11 +994,12 @@ class EventListenerPoolTests(ProcessGroupBaseTests):
         pool = self._makeOne(gconfig)
         pool.processes = {'process1': process1}
         class DummyEvent1:
-            pass
+            serial = 'abc'
         class DummyEvent2:
             process = process1
             event = DummyEvent1()
         dummyevent = DummyEvent2()
+        dummyevent.serial = 1
         pool.handle_rejected(dummyevent)
         self.assertEqual(pool.event_buffer, [dummyevent.event])
         
@@ -1012,17 +1013,19 @@ class EventListenerPoolTests(ProcessGroupBaseTests):
         pool = self._makeOne(gconfig)
         pool.processes = {'process1': process1}
         class DummyEvent1:
-            pass
+            serial = 'abc'
         class DummyEvent2:
             process = process1
             event = DummyEvent1()
         dummyevent_a = DummyEvent2()
         dummyevent_b = DummyEvent2()
+        dummyevent_a.serial = 1
+        dummyevent_b.serial = 2
         pool.event_buffer = [dummyevent_a]
         pool.handle_rejected(dummyevent_b)
         self.assertEqual(pool.event_buffer, [dummyevent_b.event])
-        self.assertTrue(pool.config.options.logger.data[0].startswith(
-            'pool whatever event buffer overflowed, discarding'))
+        self.assertEqual(pool.config.options.logger.data[0],
+            'pool whatever event buffer overflowed, discarding event 1')
 
     def test__bufferEvent_doesnt_rebufer_overflow_events(self):
         options = DummyOptions()