Reland "reclient: Enable racing for chrome developers"
This reverts commit 3aa7489c3edf46434776b47d0f3eb16537a7de82.
Reason for revert: reproxy 0.110.0 includes a flag for fixing hardlink issue
Original change's description:
> Revert "reclient: Enable racing for chrome developers"
>
> This reverts commit 24ac2543c744b2152465ea758671d46d1077bcf9.
>
> Reason for revert: hard links dont work on tmpfs b/288997481
>
> Original change's description:
> > reclient: Enable racing for chrome developers
> >
> > racing_bias=0.95 is a best guess based on benchmarks on my glinux and gwindows cloudtops, and my gmac laptop. I will monitor build performance data and adjust the bias based on that.
> >
> > Bug: b/288285261
> > Change-Id: Ie8652281f7bc815e64978bcd56a75e5ec28e2132
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4633180
> > Commit-Queue: Ben Segall <bentekkie@google.com>
> > Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
>
> Bug: b/288285261
> Change-Id: I7b262f63d4edd68447fcec0a781ef55923635d2c
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4651968
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Ben Segall <bentekkie@google.com>
Bug: b/288285261
Change-Id: I8fb65c32adc7b22a747c30f408f1f34b2bb5f8f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4693625
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Ben Segall <bentekkie@google.com>
diff --git a/reclient_helper.py b/reclient_helper.py
index 6b1ff37..878d6dd 100644
--- a/reclient_helper.py
+++ b/reclient_helper.py
@@ -141,6 +141,7 @@
"""
tmp_dir = os.path.abspath(os.path.join(out_dir, '.reproxy_tmp'))
log_dir = os.path.join(tmp_dir, 'logs')
+ racing_dir = os.path.join(tmp_dir, 'racing')
cache_dir = find_cache_dir(tmp_dir)
if make_dirs:
if os.path.exists(log_dir):
@@ -149,10 +150,12 @@
os.makedirs(tmp_dir, exist_ok=True)
os.makedirs(log_dir, exist_ok=True)
os.makedirs(cache_dir, exist_ok=True)
+ os.makedirs(racing_dir)
os.environ.setdefault("RBE_output_dir", log_dir)
os.environ.setdefault("RBE_proxy_log_dir", log_dir)
os.environ.setdefault("RBE_log_dir", log_dir)
os.environ.setdefault("RBE_cache_dir", cache_dir)
+ os.environ.setdefault("RBE_racing_tmp_dir", racing_dir)
if sys.platform.startswith('win'):
pipe_dir = hashlib.md5(tmp_dir.encode()).hexdigest()
os.environ.setdefault("RBE_server_address",
@@ -165,6 +168,12 @@
hashlib.sha256(tmp_dir.encode()).hexdigest())
+def enable_racing():
+ os.environ.setdefault("RBE_exec_strategy", "racing")
+ # TODO(b/288285261) Tune bias once latency data has been gathered.
+ os.environ.setdefault("RBE_racing_bias", "0.95")
+
+
@contextlib.contextmanager
def build_context(argv, tool):
# If use_remoteexec is set, but the reclient binaries or configs don't
@@ -198,6 +207,8 @@
print('WARNING: Using RBE_instance=%s\n' %
os.environ.get('RBE_instance', ''))
+ enable_racing()
+
reproxy_ret_code = start_reproxy(reclient_cfg, reclient_bin_dir)
if reproxy_ret_code != 0:
yield reproxy_ret_code