Skip to content

Commit 981d4fc

Browse files
authored
Merge pull request moby#5108 from sipsma/op-error-metadata
solver: include vertex Description in OpError
2 parents ba6f3df + d2c730c commit 981d4fc

File tree

5 files changed

+59
-40
lines changed

5 files changed

+59
-40
lines changed

solver/errdefs/errdefs.pb.go

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

solver/errdefs/errdefs.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ message Solve {
3030
FileAction file = 4;
3131
ContentCache cache = 5;
3232
}
33+
34+
map<string, string> description = 6;
3335
}
3436

3537
message FileAction {

solver/errdefs/op.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import "github.com/moby/buildkit/solver/pb"
44

55
type OpError struct {
66
error
7-
Op *pb.Op
7+
Op *pb.Op
8+
Description map[string]string
89
}
910

1011
func (e *OpError) Unwrap() error {
1112
return e.error
1213
}
1314

14-
func WithOp(err error, iface interface{}) error {
15-
op, ok := iface.(*pb.Op)
15+
func WithOp(err error, anyOp interface{}, opDesc map[string]string) error {
16+
op, ok := anyOp.(*pb.Op)
1617
if err == nil || !ok {
1718
return err
1819
}
19-
return &OpError{error: err, Op: op}
20+
return &OpError{error: err, Op: op, Description: opDesc}
2021
}

solver/errdefs/solve.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,22 @@ func WithSolveError(err error, subject IsSolve_Subject, inputIDs, mountIDs []str
4141
return nil
4242
}
4343
var (
44-
oe *OpError
45-
op *pb.Op
44+
oe *OpError
45+
op *pb.Op
46+
description map[string]string
4647
)
4748
if errors.As(err, &oe) {
4849
op = oe.Op
50+
description = oe.Description
4951
}
5052
return &SolveError{
5153
Err: err,
5254
Solve: Solve{
53-
InputIDs: inputIDs,
54-
MountIDs: mountIDs,
55-
Op: op,
56-
Subject: subject,
55+
InputIDs: inputIDs,
56+
MountIDs: mountIDs,
57+
Op: op,
58+
Subject: subject,
59+
Description: description,
5760
},
5861
}
5962
}

solver/jobs.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ func (s *sharedOp) LoadCache(ctx context.Context, rec *CacheRecord) (Result, err
912912
func (s *sharedOp) CalcSlowCache(ctx context.Context, index Index, p PreprocessFunc, f ResultBasedCacheFunc, res Result) (dgst digest.Digest, err error) {
913913
defer func() {
914914
err = WrapSlowCache(err, index, NewSharedResult(res).Clone())
915-
err = errdefs.WithOp(err, s.st.vtx.Sys())
915+
err = errdefs.WithOp(err, s.st.vtx.Sys(), s.st.vtx.Options().Description)
916916
err = errdefs.WrapVertex(err, s.st.origDigest)
917917
}()
918918
flightControlKey := fmt.Sprintf("slow-compute-%d", index)
@@ -989,7 +989,7 @@ func (s *sharedOp) CalcSlowCache(ctx context.Context, index Index, p PreprocessF
989989

990990
func (s *sharedOp) CacheMap(ctx context.Context, index int) (resp *cacheMapResp, err error) {
991991
defer func() {
992-
err = errdefs.WithOp(err, s.st.vtx.Sys())
992+
err = errdefs.WithOp(err, s.st.vtx.Sys(), s.st.vtx.Options().Description)
993993
err = errdefs.WrapVertex(err, s.st.origDigest)
994994
}()
995995
op, err := s.getOp()
@@ -1062,7 +1062,7 @@ func (s *sharedOp) CacheMap(ctx context.Context, index int) (resp *cacheMapResp,
10621062

10631063
func (s *sharedOp) Exec(ctx context.Context, inputs []Result) (outputs []Result, exporters []ExportableCacheKey, err error) {
10641064
defer func() {
1065-
err = errdefs.WithOp(err, s.st.vtx.Sys())
1065+
err = errdefs.WithOp(err, s.st.vtx.Sys(), s.st.vtx.Options().Description)
10661066
err = errdefs.WrapVertex(err, s.st.origDigest)
10671067
}()
10681068
op, err := s.getOp()

0 commit comments

Comments
 (0)