Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Unified Diff: third_party/buildbot_slave_8_4/README.chromium

Issue 325963006: Kill builds that produce too much output (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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:

Powered by Google App Engine
This is Rietveld 408576698