Bläddra i källkod

Change source of hash for reproxy socket.

Use the log directory for the hash used to determime the socket used, so
developers get a distinct socket per build instead of per build
directory.  Should allow concurrent builds against the same output
directory as much as ninja allows it.

Bug:b/321554715
Change-Id: I714dd2d32e2c651075055134e1568423a43eabdb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5290983
Auto-Submit: Michael Savigny <msavigny@google.com>
Commit-Queue: Michael Savigny <msavigny@google.com>
Reviewed-by: Ben Segall <bentekkie@google.com>
Michael Savigny 1 år sedan
förälder
incheckning
9d7c8e76f8
2 ändrade filer med 9 tillägg och 7 borttagningar
  1. 2 2
      reclient_helper.py
  2. 7 5
      tests/ninja_reclient_test.py

+ 2 - 2
reclient_helper.py

@@ -246,7 +246,7 @@ def set_reproxy_path_flags(out_dir, make_dirs=True):
     os.environ.setdefault("RBE_cache_dir", cache_dir)
     os.environ.setdefault("RBE_racing_tmp_dir", run_racing_dir)
     if sys.platform.startswith('win'):
-        pipe_dir = hashlib.md5(tmp_dir.encode()).hexdigest()
+        pipe_dir = hashlib.sha256(run_log_dir.encode()).hexdigest()
         os.environ.setdefault("RBE_server_address",
                               "pipe://%s/reproxy.pipe" % pipe_dir)
     else:
@@ -254,7 +254,7 @@ def set_reproxy_path_flags(out_dir, make_dirs=True):
         # 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())
+            hashlib.sha256(run_log_dir.encode()).hexdigest())
 
 
 def set_racing_defaults():

+ 7 - 5
tests/ninja_reclient_test.py

@@ -89,15 +89,17 @@ class NinjaReclientTest(trial_dir.TestCase):
         if sys.platform.startswith('win'):
             self.assertEqual(
                 os.environ.get('RBE_server_address'),
-                "pipe://%s/reproxy.pipe" % hashlib.md5(
-                    os.path.join(self.root_dir, "out", "a",
-                                 ".reproxy_tmp").encode()).hexdigest())
+                "pipe://%s/reproxy.pipe" % hashlib.sha256(
+                    os.path.join(self.root_dir, "out", "a", ".reproxy_tmp",
+                                 "logs", "20170316T200041.000000_SOME_RANDOM_ID"
+                                 ).encode()).hexdigest())
         else:
             self.assertEqual(
                 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())
+                    os.path.join(self.root_dir, "out", "a", ".reproxy_tmp",
+                                 "logs", "20170316T200041.000000_SOME_RANDOM_ID"
+                                 ).encode()).hexdigest())
 
     @unittest.mock.patch('subprocess.call', return_value=0)
     @unittest.mock.patch('ninja.main', return_value=0)