Disable RBE env variable when we cannot support RBE
Enabling the RBE variable can cause issues around pool parallelism when we set the env variable, but don' run the build with RBE due to auth issues. So, I am explicitly unsetting the variables in those cases. Bug: b/292224253 Tested: https://b.corp.google.com/issues/292224253#comment26 Change-Id: I19718b4ee6c058ba1b11d3df260421bbf8c9567e
This commit is contained in:
@@ -374,6 +374,11 @@ func NewConfig(ctx Context, args ...string) Config {
|
|||||||
if err := loadEnvConfig(ctx, ret, bc); err != nil {
|
if err := loadEnvConfig(ctx, ret, bc); err != nil {
|
||||||
ctx.Fatalln("Failed to parse env config files: %v", err)
|
ctx.Fatalln("Failed to parse env config files: %v", err)
|
||||||
}
|
}
|
||||||
|
if !ret.canSupportRBE() {
|
||||||
|
// Explicitly set USE_RBE env variable to false when we cannot run
|
||||||
|
// an RBE build to avoid ninja local execution pool issues.
|
||||||
|
ret.environ.Set("USE_RBE", "false")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if distDir, ok := ret.environ.Get("DIST_DIR"); ok {
|
if distDir, ok := ret.environ.Get("DIST_DIR"); ok {
|
||||||
@@ -1374,18 +1379,26 @@ func (c *configImpl) StartGoma() bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *configImpl) canSupportRBE() bool {
|
||||||
|
// Do not use RBE with prod credentials in scenarios when stubby doesn't exist, since
|
||||||
|
// its unlikely that we will be able to obtain necessary creds without stubby.
|
||||||
|
authType, _ := c.rbeAuth()
|
||||||
|
if !c.StubbyExists() && strings.Contains(authType, "use_google_prod_creds") {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (c *configImpl) UseRBE() bool {
|
func (c *configImpl) UseRBE() bool {
|
||||||
// These alternate modes of running Soong do not use RBE / reclient.
|
// These alternate modes of running Soong do not use RBE / reclient.
|
||||||
if c.Bp2Build() || c.Queryview() || c.ApiBp2build() || c.JsonModuleGraph() {
|
if c.Bp2Build() || c.Queryview() || c.ApiBp2build() || c.JsonModuleGraph() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
authType, _ := c.rbeAuth()
|
if !c.canSupportRBE() {
|
||||||
// Do not use RBE with prod credentials in scenarios when stubby doesn't exist, since
|
|
||||||
// its unlikely that we will be able to obtain necessary creds without stubby.
|
|
||||||
if !c.StubbyExists() && strings.Contains(authType, "use_google_prod_creds") {
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := c.Environment().Get("USE_RBE"); ok {
|
if v, ok := c.Environment().Get("USE_RBE"); ok {
|
||||||
v = strings.TrimSpace(v)
|
v = strings.TrimSpace(v)
|
||||||
if v != "" && v != "false" {
|
if v != "" && v != "false" {
|
||||||
|
Reference in New Issue
Block a user