Skip to content

Commit 99cd358

Browse files
committed
Upgrade RunResponse.exit_code to int64
POSIX allows returning values that span all of int. This means that on ILP64 systems, int32 is not necessarily large enough to fit all possible exit codes.
1 parent dfdb1c2 commit 99cd358

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

pkg/builder/local_build_executor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ func (be *localBuildExecutor) Execute(ctx context.Context, filePool re_filesyste
299299

300300
// Attach the exit code or execution error.
301301
if runErr == nil {
302-
response.Result.ExitCode = runResponse.ExitCode
302+
response.Result.ExitCode = int32(runResponse.ExitCode)
303303
response.Result.ExecutionMetadata.AuxiliaryMetadata = append(response.Result.ExecutionMetadata.AuxiliaryMetadata, runResponse.ResourceUsage...)
304304
} else {
305305
attachErrorToExecuteResponse(response, util.StatusWrap(runErr, "Failed to run command"))

pkg/proto/runner/runner.pb.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/proto/runner/runner.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ message RunRequest {
6262

6363
message RunResponse {
6464
// Exit code generated by the process.
65-
int32 exit_code = 1;
65+
int64 exit_code = 1;
6666

6767
// Runner-specific information on the amount of resources used during
6868
// execution.

pkg/runner/local_runner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ func (r *localRunner) Run(ctx context.Context, request *runner.RunRequest) (*run
212212
return nil, util.StatusWrap(err, "Failed to marshal POSIX resource usage")
213213
}
214214
return &runner.RunResponse{
215-
ExitCode: int32(cmd.ProcessState.ExitCode()),
215+
ExitCode: int64(cmd.ProcessState.ExitCode()),
216216
ResourceUsage: []*anypb.Any{posixResourceUsage},
217217
}, nil
218218
}

pkg/runner/local_runner_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func TestLocalRunnerRun(t *testing.T) {
124124
TemporaryDirectory: "EmptyEnvironment/tmp",
125125
})
126126
require.NoError(t, err)
127-
require.Equal(t, int32(0), response.ExitCode)
127+
require.Equal(t, int64(0), response.ExitCode)
128128

129129
stdout, err := os.ReadFile(filepath.Join(testPath, "stdout"))
130130
require.NoError(t, err)
@@ -158,7 +158,7 @@ func TestLocalRunnerRun(t *testing.T) {
158158
TemporaryDirectory: "NonEmptyEnvironment/tmp",
159159
})
160160
require.NoError(t, err)
161-
require.Equal(t, int32(0), response.ExitCode)
161+
require.Equal(t, int64(0), response.ExitCode)
162162

163163
stdout, err := os.ReadFile(filepath.Join(testPath, "stdout"))
164164
require.NoError(t, err)
@@ -213,7 +213,7 @@ func TestLocalRunnerRun(t *testing.T) {
213213
TemporaryDirectory: "OverridingTmpdir/tmp",
214214
})
215215
require.NoError(t, err)
216-
require.Equal(t, int32(0), response.ExitCode)
216+
require.Equal(t, int64(0), response.ExitCode)
217217

218218
stdout, err := os.ReadFile(filepath.Join(testPath, "stdout"))
219219
require.NoError(t, err)
@@ -256,7 +256,7 @@ func TestLocalRunnerRun(t *testing.T) {
256256
TemporaryDirectory: "NonZeroExitCode/tmp",
257257
})
258258
require.NoError(t, err)
259-
require.Equal(t, int32(255), response.ExitCode)
259+
require.Equal(t, int64(255), response.ExitCode)
260260

261261
stdout, err := os.ReadFile(filepath.Join(testPath, "stdout"))
262262
require.NoError(t, err)
@@ -289,7 +289,7 @@ func TestLocalRunnerRun(t *testing.T) {
289289
TemporaryDirectory: "SigKill/tmp",
290290
})
291291
require.NoError(t, err)
292-
require.NotEqual(t, int32(0), response.ExitCode)
292+
require.NotEqual(t, int64(0), response.ExitCode)
293293

294294
require.Len(t, response.ResourceUsage, 1)
295295
var posixResourceUsage resourceusage.POSIXResourceUsage
@@ -372,7 +372,7 @@ func TestLocalRunnerRun(t *testing.T) {
372372
TemporaryDirectory: "RelativeSearchPath/tmp",
373373
})
374374
require.NoError(t, err)
375-
require.Equal(t, int32(42), response.ExitCode)
375+
require.Equal(t, int64(42), response.ExitCode)
376376

377377
stdout, err := os.ReadFile(filepath.Join(testPath, "stdout"))
378378
require.NoError(t, err)

0 commit comments

Comments
 (0)