Merge pull request #2286 from aaronlehmann/exiterror-over-grpc

Allow ExitError type to be transmitted over GRPC
This commit is contained in:
coryb
2021-08-11 15:51:23 -07:00
committed by GitHub
7 changed files with 52 additions and 30 deletions

View File

@@ -21,7 +21,7 @@ import (
"github.com/docker/docker/pkg/idtools"
"github.com/moby/buildkit/executor"
"github.com/moby/buildkit/executor/oci"
"github.com/moby/buildkit/frontend/gateway/errdefs"
gatewayapi "github.com/moby/buildkit/frontend/gateway/pb"
"github.com/moby/buildkit/identity"
"github.com/moby/buildkit/snapshot"
"github.com/moby/buildkit/solver/pb"
@@ -388,11 +388,11 @@ func (w *containerdExecutor) runProcess(ctx context.Context, p containerd.Proces
cancel()
}
if status.ExitCode() != 0 {
exitErr := &errdefs.ExitError{
exitErr := &gatewayapi.ExitError{
ExitCode: status.ExitCode(),
Err: status.Error(),
}
if status.ExitCode() == errdefs.UnknownExitStatus && status.Error() != nil {
if status.ExitCode() == gatewayapi.UnknownExitStatus && status.Error() != nil {
exitErr.Err = errors.Wrap(status.Error(), "failure waiting for process")
}
select {

View File

@@ -4,13 +4,13 @@ import (
"testing"
"github.com/containerd/containerd"
"github.com/moby/buildkit/frontend/gateway/errdefs"
gatewayapi "github.com/moby/buildkit/frontend/gateway/pb"
)
func TestContainerdUnknownExitStatus(t *testing.T) {
// There are assumptions in the containerd executor that the UnknownExitStatus
// used in errdefs.ExitError matches the variable in the containerd package.
if containerd.UnknownExitStatus != errdefs.UnknownExitStatus {
if containerd.UnknownExitStatus != gatewayapi.UnknownExitStatus {
t.Fatalf("containerd.UnknownExitStatus != errdefs.UnknownExitStatus")
}
}

View File

@@ -21,7 +21,7 @@ import (
"github.com/docker/docker/pkg/idtools"
"github.com/moby/buildkit/executor"
"github.com/moby/buildkit/executor/oci"
"github.com/moby/buildkit/frontend/gateway/errdefs"
gatewayapi "github.com/moby/buildkit/frontend/gateway/pb"
"github.com/moby/buildkit/identity"
"github.com/moby/buildkit/solver/pb"
"github.com/moby/buildkit/util/network"
@@ -340,13 +340,13 @@ func (w *runcExecutor) Run(ctx context.Context, id string, root executor.Mount,
func exitError(ctx context.Context, err error) error {
if err != nil {
exitErr := &errdefs.ExitError{
ExitCode: errdefs.UnknownExitStatus,
exitErr := &gatewayapi.ExitError{
ExitCode: gatewayapi.UnknownExitStatus,
Err: err,
}
var runcExitError *runc.ExitError
if errors.As(err, &runcExitError) {
exitErr = &errdefs.ExitError{
exitErr = &gatewayapi.ExitError{
ExitCode: uint32(runcExitError.Status),
}
}