mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-10 05:27:07 +08:00
vendor: github.com/moby/buildkit 5ae9b23c40a9 (master / v0.13.0-dev)
full diff: -36ef4d8c0d...f098008783
-d5c1d785b0...5ae9b23c40
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
16
vendor/github.com/moby/buildkit/session/filesync/diffcopy.go
generated
vendored
16
vendor/github.com/moby/buildkit/session/filesync/diffcopy.go
generated
vendored
@ -47,6 +47,22 @@ type streamWriterCloser struct {
|
||||
}
|
||||
|
||||
func (wc *streamWriterCloser) Write(dt []byte) (int, error) {
|
||||
// grpc-go has a 4MB limit on messages by default. Split large messages
|
||||
// so we don't get close to that limit.
|
||||
const maxChunkSize = 3 * 1024 * 1024
|
||||
if len(dt) > maxChunkSize {
|
||||
n1, err := wc.Write(dt[:maxChunkSize])
|
||||
if err != nil {
|
||||
return n1, err
|
||||
}
|
||||
dt = dt[maxChunkSize:]
|
||||
var n2 int
|
||||
if n2, err = wc.Write(dt); err != nil {
|
||||
return n1 + n2, err
|
||||
}
|
||||
return n1 + n2, nil
|
||||
}
|
||||
|
||||
if err := wc.ClientStream.SendMsg(&BytesMessage{Data: dt}); err != nil {
|
||||
// SendMsg return EOF on remote errors
|
||||
if errors.Is(err, io.EOF) {
|
||||
|
35
vendor/github.com/moby/buildkit/session/filesync/filesync.go
generated
vendored
35
vendor/github.com/moby/buildkit/session/filesync/filesync.go
generated
vendored
@ -35,20 +35,15 @@ type fsSyncProvider struct {
|
||||
doneCh chan error
|
||||
}
|
||||
|
||||
type SyncedDir struct {
|
||||
Dir string
|
||||
Map func(string, *fstypes.Stat) fsutil.MapResult
|
||||
}
|
||||
|
||||
type DirSource interface {
|
||||
LookupDir(string) (SyncedDir, bool)
|
||||
LookupDir(string) (fsutil.FS, bool)
|
||||
}
|
||||
|
||||
type StaticDirSource map[string]SyncedDir
|
||||
type StaticDirSource map[string]fsutil.FS
|
||||
|
||||
var _ DirSource = StaticDirSource{}
|
||||
|
||||
func (dirs StaticDirSource) LookupDir(name string) (SyncedDir, bool) {
|
||||
func (dirs StaticDirSource) LookupDir(name string) (fsutil.FS, bool) {
|
||||
dir, found := dirs[name]
|
||||
return dir, found
|
||||
}
|
||||
@ -92,15 +87,22 @@ func (sp *fsSyncProvider) handle(method string, stream grpc.ServerStream) (retEr
|
||||
dirName = name[0]
|
||||
}
|
||||
|
||||
excludes := opts[keyExcludePatterns]
|
||||
includes := opts[keyIncludePatterns]
|
||||
followPaths := opts[keyFollowPaths]
|
||||
|
||||
dir, ok := sp.dirs.LookupDir(dirName)
|
||||
if !ok {
|
||||
return InvalidSessionError{status.Errorf(codes.NotFound, "no access allowed to dir %q", dirName)}
|
||||
}
|
||||
|
||||
excludes := opts[keyExcludePatterns]
|
||||
includes := opts[keyIncludePatterns]
|
||||
|
||||
followPaths := opts[keyFollowPaths]
|
||||
dir, err := fsutil.NewFilterFS(dir, &fsutil.FilterOpt{
|
||||
ExcludePatterns: excludes,
|
||||
IncludePatterns: includes,
|
||||
FollowPaths: followPaths,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var progress progressCb
|
||||
if sp.p != nil {
|
||||
@ -113,12 +115,7 @@ func (sp *fsSyncProvider) handle(method string, stream grpc.ServerStream) (retEr
|
||||
doneCh = sp.doneCh
|
||||
sp.doneCh = nil
|
||||
}
|
||||
err := pr.sendFn(stream, fsutil.NewFS(dir.Dir, &fsutil.WalkOpt{
|
||||
ExcludePatterns: excludes,
|
||||
IncludePatterns: includes,
|
||||
FollowPaths: followPaths,
|
||||
Map: dir.Map,
|
||||
}), progress)
|
||||
err = pr.sendFn(stream, dir, progress)
|
||||
if doneCh != nil {
|
||||
if err != nil {
|
||||
doneCh <- err
|
||||
|
3
vendor/github.com/moby/buildkit/session/grpc.go
generated
vendored
3
vendor/github.com/moby/buildkit/session/grpc.go
generated
vendored
@ -7,6 +7,7 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/defaults"
|
||||
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
|
||||
"github.com/moby/buildkit/util/bklog"
|
||||
"github.com/moby/buildkit/util/grpcerrors"
|
||||
@ -44,6 +45,8 @@ func grpcClientConn(ctx context.Context, conn net.Conn) (context.Context, *grpc.
|
||||
dialOpts := []grpc.DialOption{
|
||||
dialer,
|
||||
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
||||
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(defaults.DefaultMaxRecvMsgSize)),
|
||||
grpc.WithDefaultCallOptions(grpc.MaxCallSendMsgSize(defaults.DefaultMaxSendMsgSize)),
|
||||
}
|
||||
|
||||
if span := trace.SpanFromContext(ctx); span.SpanContext().IsValid() {
|
||||
|
14
vendor/github.com/moby/buildkit/session/upload/uploadprovider/provider.go
generated
vendored
14
vendor/github.com/moby/buildkit/session/upload/uploadprovider/provider.go
generated
vendored
@ -59,6 +59,20 @@ type writer struct {
|
||||
}
|
||||
|
||||
func (w *writer) Write(dt []byte) (int, error) {
|
||||
// avoid sending too big messages on grpc stream
|
||||
const maxChunkSize = 3 * 1024 * 1024
|
||||
if len(dt) > maxChunkSize {
|
||||
n1, err := w.Write(dt[:maxChunkSize])
|
||||
if err != nil {
|
||||
return n1, err
|
||||
}
|
||||
dt = dt[maxChunkSize:]
|
||||
var n2 int
|
||||
if n2, err := w.Write(dt); err != nil {
|
||||
return n1 + n2, err
|
||||
}
|
||||
return n1 + n2, nil
|
||||
}
|
||||
if err := w.SendMsg(&upload.BytesMessage{Data: dt}); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user