From 6324647bcce4a05568e9a5cb1237c2ca7f6781b3 Mon Sep 17 00:00:00 2001 From: Kousik Kumar Date: Thu, 25 May 2023 15:23:29 +0000 Subject: [PATCH] Remove env config fetcher code This code is no longer needed since we are now setting USE_RBE to true for 100% of users (except two users, who I'll reach out to over email). So fetching the configuration is no longer needed since sometimes this can result in RBE config flipping between on and off (depending on whether you have gcert or not). Tested: Ran the build with latest sync and ensured RBE was used for the build. Bug: b/283828386 Change-Id: I3cda78607b46a0e161b7841560dc587a44d91f27 --- ui/build/config.go | 88 ---------------------------------------------- 1 file changed, 88 deletions(-) diff --git a/ui/build/config.go b/ui/build/config.go index 8ec96800f..45735ad66 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -15,7 +15,6 @@ package build import ( - "context" "encoding/json" "fmt" "io/ioutil" @@ -39,9 +38,6 @@ import ( const ( envConfigDir = "vendor/google/tools/soong_config" jsonSuffix = "json" - - configFetcher = "vendor/google/tools/soong/expconfigfetcher" - envConfigFetchTimeout = 10 * time.Second ) var ( @@ -170,87 +166,6 @@ func checkTopDir(ctx Context) { } } -// fetchEnvConfig optionally fetches a configuration file that can then subsequently be -// loaded into Soong environment to control certain aspects of build behavior (e.g., enabling RBE). -// If a configuration file already exists on disk, the fetch is run in the background -// so as to NOT block the rest of the build execution. -func fetchEnvConfig(ctx Context, config *configImpl, envConfigName string) error { - configName := envConfigName + "." + jsonSuffix - expConfigFetcher := &smpb.ExpConfigFetcher{Filename: &configName} - defer func() { - ctx.Metrics.ExpConfigFetcher(expConfigFetcher) - }() - if !config.GoogleProdCredsExist() { - status := smpb.ExpConfigFetcher_MISSING_GCERT - expConfigFetcher.Status = &status - return nil - } - - s, err := os.Stat(configFetcher) - if err != nil { - if os.IsNotExist(err) { - return nil - } - return err - } - if s.Mode()&0111 == 0 { - status := smpb.ExpConfigFetcher_ERROR - expConfigFetcher.Status = &status - return fmt.Errorf("configuration fetcher binary %v is not executable: %v", configFetcher, s.Mode()) - } - - configExists := false - outConfigFilePath := filepath.Join(config.OutDir(), configName) - if _, err := os.Stat(outConfigFilePath); err == nil { - configExists = true - } - - tCtx, cancel := context.WithTimeout(ctx, envConfigFetchTimeout) - fetchStart := time.Now() - cmd := exec.CommandContext(tCtx, configFetcher, "-output_config_dir", config.OutDir(), - "-output_config_name", configName) - if err := cmd.Start(); err != nil { - status := smpb.ExpConfigFetcher_ERROR - expConfigFetcher.Status = &status - return err - } - - fetchCfg := func() error { - if err := cmd.Wait(); err != nil { - status := smpb.ExpConfigFetcher_ERROR - expConfigFetcher.Status = &status - return err - } - fetchEnd := time.Now() - expConfigFetcher.Micros = proto.Uint64(uint64(fetchEnd.Sub(fetchStart).Microseconds())) - expConfigFetcher.Filename = proto.String(outConfigFilePath) - - if _, err := os.Stat(outConfigFilePath); err != nil { - status := smpb.ExpConfigFetcher_NO_CONFIG - expConfigFetcher.Status = &status - return err - } - status := smpb.ExpConfigFetcher_CONFIG - expConfigFetcher.Status = &status - return nil - } - - // If a config file does not exist, wait for the config file to be fetched. Otherwise - // fetch the config file in the background and return immediately. - if !configExists { - defer cancel() - return fetchCfg() - } - - go func() { - defer cancel() - if err := fetchCfg(); err != nil { - ctx.Verbosef("Failed to fetch config file %v: %v\n", configName, err) - } - }() - return nil -} - func loadEnvConfig(ctx Context, config *configImpl, bc string) error { if bc == "" { return nil @@ -350,9 +265,6 @@ func NewConfig(ctx Context, args ...string) Config { bc := os.Getenv("ANDROID_BUILD_ENVIRONMENT_CONFIG") if bc != "" { - if err := fetchEnvConfig(ctx, ret, bc); err != nil { - ctx.Verbosef("Failed to fetch config file: %v\n", err) - } if err := loadEnvConfig(ctx, ret, bc); err != nil { ctx.Fatalln("Failed to parse env config files: %v", err) }