reclient: use fixed size path for unix domain socket

Bug: b/278846515
Change-Id: Ibfc61acdbfbdbc84a4e1b7fec12169b06236b545
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4570163
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Junji Watanabe <jwata@google.com>
changes/63/4570163/4
Takuto Ikuta 2 years ago committed by LUCI CQ
parent 0e3589eaf8
commit bf67b23193

@ -134,8 +134,11 @@ def set_reproxy_path_flags(out_dir, make_dirs=True):
os.environ.setdefault("RBE_server_address",
"pipe://%s/reproxy.pipe" % pipe_dir)
else:
os.environ.setdefault("RBE_server_address",
"unix://%s/reproxy.sock" % tmp_dir)
# unix domain socket has path length limit, so use fixed size path here.
# ref: https://www.man7.org/linux/man-pages/man7/unix.7.html
os.environ.setdefault(
"RBE_server_address", "unix://tmp/reproxy_%s.sock" %
hashlib.sha256(tmp_dir.encode()).hexdigest())
@contextlib.contextmanager

@ -86,8 +86,10 @@ class NinjaReclientTest(trial_dir.TestCase):
".reproxy_tmp").encode()).hexdigest())
else:
self.assertEqual(
os.environ.get('RBE_server_address'), "unix://%s/reproxy.sock" %
os.path.join(self.root_dir, "out", "a", ".reproxy_tmp"))
os.environ.get('RBE_server_address'),
"unix://tmp/reproxy_%s.sock" % hashlib.sha256(
os.path.join(self.root_dir, "out", "a",
".reproxy_tmp").encode()).hexdigest())
mock_ninja.assert_called_once_with(argv)
mock_call.assert_has_calls([

Loading…
Cancel
Save