mirror of
https://github.com/moby/buildkit.git
synced 2025-07-27 16:41:49 +03:00
fix bug that gen layer tar contains duplicated files
Signed-off-by: frankyang <yyb196@gmail.com>
This commit is contained in:
13
cache/blobs_linux.go
vendored
13
cache/blobs_linux.go
vendored
@ -43,14 +43,27 @@ func (sr *immutableRef) tryComputeOverlayBlob(ctx context.Context, lower, upper
|
||||
if err != nil {
|
||||
return emptyDesc, false, errors.Wrap(err, "failed to open writer")
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if cw != nil {
|
||||
// after commit success cw will be set to nil, if cw isn't nil, error
|
||||
// happened before commit, we should abort this ingest, and because the
|
||||
// error may incured by ctx cancel, use a new context here. And since
|
||||
// cm.Close will unlock this ref in the content store, we invoke abort
|
||||
// to remove the ingest root in advance.
|
||||
if aerr := sr.cm.ContentStore.Abort(context.Background(), ref); aerr != nil {
|
||||
bklog.G(ctx).WithError(aerr).Warnf("failed to abort writer %q", ref)
|
||||
}
|
||||
if cerr := cw.Close(); cerr != nil {
|
||||
bklog.G(ctx).WithError(cerr).Warnf("failed to close writer %q", ref)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
if err = cw.Truncate(0); err != nil {
|
||||
return emptyDesc, false, errors.Wrap(err, "failed to truncate writer")
|
||||
}
|
||||
|
||||
bufW := bufio.NewWriterSize(cw, 128*1024)
|
||||
var labels map[string]string
|
||||
if compressorFunc != nil {
|
||||
|
Reference in New Issue
Block a user