Changeset 244571 in webkit
- Timestamp:
- Apr 23, 2019 4:52:43 PM (5 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r244568 r244571 1 2019-04-23 Jonathan Bedard <jbedard@apple.com> 2 3 webkitpy: Kill unresponsive worker processes 4 https://bugs.webkit.org/show_bug.cgi?id=197205 5 <rdar://problem/50104388> 6 7 Reviewed by Lucas Forschler. 8 9 * Scripts/webkitpy/common/message_pool.py: 10 (_MessagePool.__init__): Add close timeout. 11 (_MessagePool._close): Send termination before joining workers, kill unresponsive workers. 12 1 13 2019-04-23 Alex Christensen <achristensen@webkit.org> 2 14 -
trunk/Tools/Scripts/webkitpy/common/message_pool.py
r225733 r244571 44 44 import logging 45 45 import multiprocessing 46 import os 46 47 import Queue 48 import signal 47 49 import sys 48 50 import time … … 63 65 64 66 class _MessagePool(object): 65 def __init__(self, caller, worker_factory, num_workers, worker_startup_delay_secs=0.0, host=None ):67 def __init__(self, caller, worker_factory, num_workers, worker_startup_delay_secs=0.0, host=None, timeout=30): 66 68 self._caller = caller 67 69 self._worker_factory = worker_factory … … 73 75 self._name = 'manager' 74 76 self._running_inline = (self._num_workers == 1) 77 self._timeout = timeout 75 78 if self._running_inline: 76 79 self._messages_to_worker = Queue.Queue() … … 138 141 if worker.is_alive(): 139 142 worker.terminate() 140 worker.join() 143 144 deadline = time.time() + self._timeout 145 for worker in self._workers: 146 if worker.is_alive(): 147 worker.join(timeout=max(deadline - time.time(), 0)) 148 if worker.is_alive(): 149 _log.error('{} failed to terminate, killing it'.format(worker.name)) 150 os.kill(worker.ident, signal.SIGKILL) 151 141 152 self._workers = [] 142 153 if not self._running_inline:
Note: See TracChangeset
for help on using the changeset viewer.