Generate RBE socket address randomly for each invocation of soong.
Test: started soong multiple times and saw different socket files in out/soong/.temp Change-Id: Ib0087dd3867bdbf584c6868196070840cff291aa
This commit is contained in:
@@ -184,7 +184,8 @@ func NewConfig(ctx Context, args ...string) Config {
|
||||
// Tell python not to spam the source tree with .pyc files.
|
||||
ret.environ.Set("PYTHONDONTWRITEBYTECODE", "1")
|
||||
|
||||
ret.environ.Set("TMPDIR", absPath(ctx, ret.TempDir()))
|
||||
tmpDir := absPath(ctx, ret.TempDir())
|
||||
ret.environ.Set("TMPDIR", tmpDir)
|
||||
|
||||
// Always set ASAN_SYMBOLIZER_PATH so that ASAN-based tools can symbolize any crashes
|
||||
symbolizerPath := filepath.Join("prebuilts/clang/host", ret.HostPrebuiltTag(),
|
||||
@@ -258,6 +259,12 @@ func NewConfig(ctx Context, args ...string) Config {
|
||||
|
||||
ret.environ.Set("BUILD_DATETIME_FILE", buildDateTimeFile)
|
||||
|
||||
if ret.UseRBE() {
|
||||
for k, v := range getRBEVars(ctx, tmpDir) {
|
||||
ret.environ.Set(k, v)
|
||||
}
|
||||
}
|
||||
|
||||
return Config{ret}
|
||||
}
|
||||
|
||||
|
@@ -15,8 +15,11 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"android/soong/ui/metrics"
|
||||
)
|
||||
@@ -49,6 +52,11 @@ func rbeCommand(ctx Context, config Config, rbeCmd string) string {
|
||||
return cmdPath
|
||||
}
|
||||
|
||||
func getRBEVars(ctx Context, tmpDir string) map[string]string {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
return map[string]string{"RBE_server_address": fmt.Sprintf("unix://%v/reproxy_%v.sock", tmpDir, rand.Intn(1000))}
|
||||
}
|
||||
|
||||
func startRBE(ctx Context, config Config) {
|
||||
ctx.BeginTrace(metrics.RunSetupTool, "rbe_bootstrap")
|
||||
defer ctx.EndTrace()
|
||||
|
Reference in New Issue
Block a user