diff options
-rwxr-xr-x | worker_manager | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/worker_manager b/worker_manager index 1cc012e..9e16d19 100755 --- a/worker_manager +++ b/worker_manager @@ -19,6 +19,7 @@ import base64 import json import logging import os +import subprocess import tempfile import time @@ -338,8 +339,7 @@ class Runner: exit_code, _, _ = cliapp.runcmd_unchecked( argv, stdout_callback=self.capture_stdout, - stderr_callback=self.capture_stderr, - timeout_callback=self.flush, + stderr=subprocess.STDOUT, **kwargs ) self.flush() @@ -353,18 +353,23 @@ class Runner: return self.capture('stderr', data) def capture(self, stream_name, data): + logging.debug('CAPTURE %s: %r', stream_name, data) self._buffers[stream_name] += data.decode('UTF-8') if len(self._buffers[stream_name]) >= self._maxbuf: self.flush() return None def flush(self): - for stream in self._buffers: + logging.debug('flushing: self._buffers=%r', self._buffers) + streams = list(self._buffers.keys()) + logging.debug('streams: %r', streams) + for stream in streams: buf = self._buffers[stream] + logging.debug('FLUSH: %s: %r', stream, buf) self._buffers[stream] = '' if buf: logging.debug('Posting %d bytes of %s', len(buf), stream) - return self._post(stream, buf) + self._post(stream, buf) class WorkerBase: |