mirror of
https://github.com/minio/minio.git
synced 2024-12-25 14:45:54 -05:00
Disable mint full object tests (#20743)
Remove expected failures from https://github.com/minio/minio-go/pull/2026
This commit is contained in:
parent
aff2a76d80
commit
5bb31e4883
2
.github/workflows/run-mint.sh
vendored
2
.github/workflows/run-mint.sh
vendored
@ -7,6 +7,7 @@ export ACCESS_KEY="$2"
|
|||||||
export SECRET_KEY="$3"
|
export SECRET_KEY="$3"
|
||||||
export JOB_NAME="$4"
|
export JOB_NAME="$4"
|
||||||
export MINT_MODE="full"
|
export MINT_MODE="full"
|
||||||
|
export MINT_NO_FULL_OBJECT="true"
|
||||||
|
|
||||||
docker system prune -f || true
|
docker system prune -f || true
|
||||||
docker volume prune -f || true
|
docker volume prune -f || true
|
||||||
@ -35,6 +36,7 @@ docker run --rm --net=mint_default \
|
|||||||
-e ACCESS_KEY="${ACCESS_KEY}" \
|
-e ACCESS_KEY="${ACCESS_KEY}" \
|
||||||
-e SECRET_KEY="${SECRET_KEY}" \
|
-e SECRET_KEY="${SECRET_KEY}" \
|
||||||
-e ENABLE_HTTPS=0 \
|
-e ENABLE_HTTPS=0 \
|
||||||
|
-e MINT_NO_FULL_OBJECT="${MINT_NO_FULL_OBJECT}" \
|
||||||
-e MINT_MODE="${MINT_MODE}" \
|
-e MINT_MODE="${MINT_MODE}" \
|
||||||
docker.io/minio/mint:edge
|
docker.io/minio/mint:edge
|
||||||
|
|
||||||
|
@ -1338,6 +1338,7 @@ func (api objectAPIHandlers) PostPolicyBucketHandler(w http.ResponseWriter, r *h
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
opts.EncryptFn = metadataEncrypter(objectEncryptionKey)
|
||||||
pReader, err = pReader.WithEncryption(hashReader, &objectEncryptionKey)
|
pReader, err = pReader.WithEncryption(hashReader, &objectEncryptionKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
||||||
|
@ -404,12 +404,7 @@ func putOptsFromHeaders(ctx context.Context, hdr http.Header, metadata map[strin
|
|||||||
metadata = make(map[string]string)
|
metadata = make(map[string]string)
|
||||||
}
|
}
|
||||||
|
|
||||||
wantCRC, err := hash.GetContentChecksum(hdr)
|
|
||||||
if err != nil {
|
|
||||||
return opts, fmt.Errorf("invalid/unknown checksum sent: %v", err)
|
|
||||||
}
|
|
||||||
etag := strings.TrimSpace(hdr.Get(xhttp.MinIOSourceETag))
|
etag := strings.TrimSpace(hdr.Get(xhttp.MinIOSourceETag))
|
||||||
|
|
||||||
if crypto.S3KMS.IsRequested(hdr) {
|
if crypto.S3KMS.IsRequested(hdr) {
|
||||||
keyID, context, err := crypto.S3KMS.ParseHTTP(hdr)
|
keyID, context, err := crypto.S3KMS.ParseHTTP(hdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -423,7 +418,6 @@ func putOptsFromHeaders(ctx context.Context, hdr http.Header, metadata map[strin
|
|||||||
ServerSideEncryption: sseKms,
|
ServerSideEncryption: sseKms,
|
||||||
UserDefined: metadata,
|
UserDefined: metadata,
|
||||||
MTime: mtime,
|
MTime: mtime,
|
||||||
WantChecksum: wantCRC,
|
|
||||||
PreserveETag: etag,
|
PreserveETag: etag,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
@ -438,7 +432,6 @@ func putOptsFromHeaders(ctx context.Context, hdr http.Header, metadata map[strin
|
|||||||
opts.ReplicationSourceRetentionTimestamp = retaintimestmp
|
opts.ReplicationSourceRetentionTimestamp = retaintimestmp
|
||||||
opts.ReplicationSourceTaggingTimestamp = taggingtimestmp
|
opts.ReplicationSourceTaggingTimestamp = taggingtimestmp
|
||||||
opts.PreserveETag = etag
|
opts.PreserveETag = etag
|
||||||
opts.WantChecksum = wantCRC
|
|
||||||
|
|
||||||
return opts, nil
|
return opts, nil
|
||||||
}
|
}
|
||||||
|
@ -1899,6 +1899,13 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
|
|||||||
var reader io.Reader
|
var reader io.Reader
|
||||||
reader = rd
|
reader = rd
|
||||||
|
|
||||||
|
var opts ObjectOptions
|
||||||
|
opts, err = putOptsFromReq(ctx, r, bucket, object, metadata)
|
||||||
|
if err != nil {
|
||||||
|
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
actualSize := size
|
actualSize := size
|
||||||
var idxCb func() []byte
|
var idxCb func() []byte
|
||||||
if isCompressible(r.Header, object) && size > minCompressibleSize {
|
if isCompressible(r.Header, object) && size > minCompressibleSize {
|
||||||
@ -1915,6 +1922,8 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
|
|||||||
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrInvalidChecksum), r.URL)
|
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrInvalidChecksum), r.URL)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
opts.WantChecksum = actualReader.Checksum()
|
||||||
|
|
||||||
// Set compression metrics.
|
// Set compression metrics.
|
||||||
var s2c io.ReadCloser
|
var s2c io.ReadCloser
|
||||||
wantEncryption := crypto.Requested(r.Header)
|
wantEncryption := crypto.Requested(r.Header)
|
||||||
@ -1945,22 +1954,17 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
|
|||||||
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err := hashReader.AddChecksum(r, size < 0); err != nil {
|
if size >= 0 {
|
||||||
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrInvalidChecksum), r.URL)
|
if err := hashReader.AddChecksum(r, false); err != nil {
|
||||||
return
|
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrInvalidChecksum), r.URL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
opts.WantChecksum = hashReader.Checksum()
|
||||||
}
|
}
|
||||||
|
|
||||||
rawReader := hashReader
|
rawReader := hashReader
|
||||||
pReader := NewPutObjReader(rawReader)
|
pReader := NewPutObjReader(rawReader)
|
||||||
|
|
||||||
var opts ObjectOptions
|
|
||||||
opts, err = putOptsFromReq(ctx, r, bucket, object, metadata)
|
|
||||||
if err != nil {
|
|
||||||
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
opts.IndexCB = idxCb
|
opts.IndexCB = idxCb
|
||||||
opts.WantChecksum = hashReader.Checksum()
|
|
||||||
|
|
||||||
if opts.PreserveETag != "" ||
|
if opts.PreserveETag != "" ||
|
||||||
r.Header.Get(xhttp.IfMatch) != "" ||
|
r.Header.Get(xhttp.IfMatch) != "" ||
|
||||||
|
@ -257,6 +257,26 @@ func (r *Reader) Read(p []byte) (int, error) {
|
|||||||
r.contentHasher.Write(p[:n])
|
r.contentHasher.Write(p[:n])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we have reached our expected size,
|
||||||
|
// do one more read to ensure we are at EOF
|
||||||
|
// and that any trailers have been read.
|
||||||
|
attempts := 0
|
||||||
|
for err == nil && r.size >= 0 && r.bytesRead >= r.size {
|
||||||
|
attempts++
|
||||||
|
if r.bytesRead > r.size {
|
||||||
|
return 0, SizeTooLarge{Want: r.size, Got: r.bytesRead}
|
||||||
|
}
|
||||||
|
var tmp [1]byte
|
||||||
|
var n2 int
|
||||||
|
n2, err = r.src.Read(tmp[:])
|
||||||
|
if n2 > 0 {
|
||||||
|
return 0, SizeTooLarge{Want: r.size, Got: r.bytesRead}
|
||||||
|
}
|
||||||
|
if attempts == 100 {
|
||||||
|
return 0, io.ErrNoProgress
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err == io.EOF { // Verify content SHA256, if set.
|
if err == io.EOF { // Verify content SHA256, if set.
|
||||||
if r.expectedMin > 0 {
|
if r.expectedMin > 0 {
|
||||||
if r.bytesRead < r.expectedMin {
|
if r.bytesRead < r.expectedMin {
|
||||||
|
Loading…
Reference in New Issue
Block a user