Index: third_party/buildbot_slave_8_4/README.chromium |
diff --git a/third_party/buildbot_slave_8_4/README.chromium b/third_party/buildbot_slave_8_4/README.chromium |
index de91dc1d6e032631620981010d3c8d762d28409c..91eee6726c755fd22f9ac7f6fa44857a39d91a27 100644 |
--- a/third_party/buildbot_slave_8_4/README.chromium |
+++ b/third_party/buildbot_slave_8_4/README.chromium |
@@ -80,3 +80,36 @@ index 75d6cc4..6a96b03 100644 |
+ # never called. In testing mode, Reboot() returns immediately |
+ # with no effect, and we need to recover. |
self.failed(RuntimeError("SIGKILL failed to kill process")) |
+ |
+diff --git a/third_party/buildbot_slave_8_4/buildslave/runprocess.py b/third_party/buildbot_slave_8_4/buildslave/runprocess.py |
+index 6a96b03..1b79a17 100644 |
+--- a/third_party/buildbot_slave_8_4/buildslave/runprocess.py |
++++ b/third_party/buildbot_slave_8_4/buildslave/runprocess.py |
+@@ -212,6 +212,7 @@ class RunProcess: |
+ BACKUP_TIMEOUT = 5 |
+ KILL = "KILL" |
+ CHUNK_LIMIT = 128*1024 |
++ OUTPUT_LIMIT = 50*1024*1024 |
+ |
+ # Don't send any data until at least BUFFER_SIZE bytes have been collected |
+ # or BUFFER_TIMEOUT elapsed |
+@@ -322,6 +323,7 @@ class RunProcess: |
+ self.buffered = deque() |
+ self.buflen = 0 |
+ self.buftimer = None |
++ self.totalOutputLength = 0 |
+ |
+ if usePTY == "slave-config": |
+ self.usePTY = self.builder.usePTY |
+@@ -621,6 +623,11 @@ class RunProcess: |
+ """ |
+ n = len(data) |
+ |
++ self.totalOutputLength += n |
++ if self.totalOutputLength > self.OUTPUT_LIMIT: |
++ self.kill('output limit (%d) exceeded' % self.OUTPUT_LIMIT) |
++ return |
++ |
+ self.buflen += n |
+ self.buffered.append((logname, data)) |
+ if self.buflen > self.BUFFER_SIZE: |