Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60b62f67 authored by Colin Cross's avatar Colin Cross Committed by Automerger Merge Worker
Browse files

Merge "Move startRBE error handling to the main goroutine" into main am: 31783628

parents 53271a24 31783628
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -283,12 +283,17 @@ func Build(ctx Context, config Config) {
	}

	rbeCh := make(chan bool)
	var rbePanic any
	if config.StartRBE() {
		cleanupRBELogsDir(ctx, config)
		checkRBERequirements(ctx, config)
		go func() {
			startRBE(ctx, config)
			defer func() {
				rbePanic = recover()
				close(rbeCh)
			}()
			startRBE(ctx, config)
		}()
		defer DumpRBEMetrics(ctx, config, filepath.Join(config.LogsDir(), "rbe_metrics.pb"))
	} else {
		close(rbeCh)
@@ -345,6 +350,11 @@ func Build(ctx Context, config Config) {
	}

	<-rbeCh
	if rbePanic != nil {
		// If there was a ctx.Fatal in startRBE, rethrow it.
		panic(rbePanic)
	}

	if what&RunNinja != 0 {
		if what&RunKati != 0 {
			installCleanIfNecessary(ctx, config)
+8 −5
Original line number Diff line number Diff line
@@ -95,14 +95,10 @@ func cleanupRBELogsDir(ctx Context, config Config) {
	}
}

func startRBE(ctx Context, config Config) {
func checkRBERequirements(ctx Context, config Config) {
	if !config.GoogleProdCredsExist() && prodCredsAuthType(config) {
		ctx.Fatalf("Unable to start RBE reproxy\nFAILED: Missing LOAS credentials.")
	}
	ctx.BeginTrace(metrics.RunSetupTool, "rbe_bootstrap")
	defer ctx.EndTrace()

	ctx.Status.Status("Starting rbe...")

	if u := ulimitOrFatal(ctx, config, "-u"); u < rbeLeastNProcs {
		ctx.Fatalf("max user processes is insufficient: %d; want >= %d.\n", u, rbeLeastNProcs)
@@ -115,6 +111,13 @@ func startRBE(ctx Context, config Config) {
			ctx.Fatalf("Unable to create logs dir (%v) for RBE: %v", config.rbeProxyLogsDir, err)
		}
	}
}

func startRBE(ctx Context, config Config) {
	ctx.BeginTrace(metrics.RunSetupTool, "rbe_bootstrap")
	defer ctx.EndTrace()

	ctx.Status.Status("Starting rbe...")

	cmd := Command(ctx, config, "startRBE bootstrap", rbeCommand(ctx, config, bootstrapCmd))