mirror of
https://github.com/moby/buildkit.git
synced 2026-08-05 23:30:22 +00:00
Merge pull request #2286 from aaronlehmann/exiterror-over-grpc
Allow ExitError type to be transmitted over GRPC
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user