Skip to content

Commit e7aa6e7

Browse files
committed
Use retry
1 parent 02b7980 commit e7aa6e7

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

cli/remotebazel/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ go_library(
3535
"//server/util/error_util",
3636
"//server/util/flag",
3737
"//server/util/grpc_client",
38+
"//server/util/retry",
3839
"//server/util/rexec",
3940
"//server/util/shlex",
4041
"//server/util/status",

cli/remotebazel/remotebazel.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"github.com/buildbuddy-io/buildbuddy/server/util/bazel"
3535
"github.com/buildbuddy-io/buildbuddy/server/util/error_util"
3636
"github.com/buildbuddy-io/buildbuddy/server/util/grpc_client"
37+
"github.com/buildbuddy-io/buildbuddy/server/util/retry"
3738
"github.com/buildbuddy-io/buildbuddy/server/util/rexec"
3839
"github.com/buildbuddy-io/buildbuddy/server/util/shlex"
3940
"github.com/buildbuddy-io/buildbuddy/server/util/status"
@@ -1100,23 +1101,24 @@ func attemptRun(ctx context.Context, bbClient bbspb.BuildBuddyServiceClient, exe
11001101
return nil
11011102
})
11021103
eg.Go(func() error {
1103-
var execution *espb.GetExecutionResponse
1104-
for {
1105-
var err error
1106-
execution, err = bbClient.GetExecution(ctx, &espb.GetExecutionRequest{ExecutionLookup: &espb.ExecutionLookup{
1104+
execution, err := retry.Do(ctx, &retry.Options{
1105+
InitialBackoff: 500 * time.Millisecond,
1106+
MaxBackoff: 5 * time.Second,
1107+
Multiplier: 2,
1108+
}, func(ctx context.Context) (*espb.GetExecutionResponse, error) {
1109+
execution, err := bbClient.GetExecution(ctx, &espb.GetExecutionRequest{ExecutionLookup: &espb.ExecutionLookup{
11071110
InvocationId: iid,
11081111
}})
11091112
if err != nil {
1110-
return fmt.Errorf("could not retrieve ci_runner execution: %w", err)
1113+
return nil, retry.NonRetryableError(fmt.Errorf("could not retrieve ci_runner execution: %w", err))
11111114
}
1112-
if len(execution.GetExecution()) > 0 {
1113-
break
1114-
}
1115-
select {
1116-
case <-ctx.Done():
1117-
return ctx.Err()
1118-
case <-time.After(500 * time.Millisecond):
1115+
if len(execution.GetExecution()) == 0 {
1116+
return nil, fmt.Errorf("ci_runner execution not found yet")
11191117
}
1118+
return execution, nil
1119+
})
1120+
if err != nil {
1121+
return err
11201122
}
11211123
executionID := execution.GetExecution()[0].GetExecutionId()
11221124
waitExecutionStream, err := execClient.WaitExecution(ctx, &repb.WaitExecutionRequest{

0 commit comments

Comments
 (0)