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

Commit 31783628 authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "Move startRBE error handling to the main goroutine" into main

parents e0a5c5ae e7151f97
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))