Skip to content

Commit c3fdbd4

Browse files
committed
Omit definitions from returned references
Returning a gateway frontend result serialized the solved references' LLB definitions again. The Return handler already resolves those references by ID [1], so a large definition plus result metadata could exceed the gRPC message limit after Solve succeeded. Omit definitions from references serialized in Return. Keep them in Solve responses and client references so Reference.ToState can still reconstruct their LLB state. Prepared by Codex on Tamir's behalf. [1]: https://github.com/moby/buildkit/blob/64aefaef4d7dbb993156a0839958e4342aeb4c51/frontend/gateway/gateway.go#L1102-L1168 Signed-off-by: Tamir Duberstein <tamird@gmail.com>
1 parent 2755b2f commit c3fdbd4

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

‎frontend/gateway/grpcclient/client.go‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ func convertRef(ref client.Reference) (*pb.Ref, error) {
9797
if !ok {
9898
return nil, errors.Errorf("invalid return reference type %T", ref)
9999
}
100-
return &pb.Ref{Id: r.id, Def: r.def}, nil
100+
// Return only needs the ID of the reference held by the server.
101+
return &pb.Ref{Id: r.id}, nil
101102
}
102103

103104
func RunFromEnvironment(ctx context.Context, f client.BuildFunc) error {

0 commit comments

Comments
 (0)