minio / mint

Collection of tests to detect overall correctness of MinIO server.
Apache License 2.0
79 stars 50 forks source link

Mint PHP test, 'UploadPart' , fails with minio server running in s3 gateway mode #168

Closed ebozduman closed 6 years ago

ebozduman commented 6 years ago

Here is the log message for UploadPart test:

{
  "name": "aws-sdk-php",
  "function": "uploadPart ( array $params = [] )",
  "args": {
    "Bucket": "aws-sdk-php-bucket-14203",
    "Object": "obj1"
  },
  "duration": "6937",
  "status": "FAIL",
  "error": "Error executing \"CompleteMultipartUpload\" on \"http://192.168.1.22:9000/aws-sdk-php-bucket-14203/obj1?uploadId=wOTMwoUBLZYf_umXBN0nl8KYYxOkRGMdi3ckzHnBkKAwBf.IN5wg4EozlkTRbAXfIXpc48s4p0pgeNwc8cQ36Ye_H0kJY5sD9Ym2qLw7ObDj1H36Ts1667_nZOyq9Ae0\"; AWS HTTP error: Server error: `POST http://192.168.1.22:9000/aws-sdk-php-bucket-14203/obj1?uploadId=wOTMwoUBLZYf_umXBN0nl8KYYxOkRGMdi3ckzHnBkKAwBf.IN5wg4EozlkTRbAXfIXpc48s4p0pgeNwc8cQ36Ye_H0kJY5sD9Ym2qLw7ObDj1H36Ts1667_nZOyq9Ae0` resulted in a `500 Internal Server Error` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InternalError</Code><Message>We encountered an internal error, pleas (truncated...)\n InternalError (server): We encountered an internal error, please try again. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InternalError</Code><Message>We encountered an internal error, please try again.</Message><Key></Key><BucketName></BucketName><Resource>/aws-sdk-php-bucket-14203/obj1</Resource><RequestId>3L137</RequestId><HostId>3L137</HostId></Error>"
}
kannappanr commented 6 years ago

Here is the code to reproduce the issue. The error received is internal error in the case of s3-gateway. We receive a proper error in the case of S3.

package main

import (
    "bytes"
    "fmt"
    "log"

    "github.com/minio/minio-go"
)

func main() {
    s3Client, err := minio.NewCore("127.0.0.1:9001", "minio", "minio123", false)
    if err != nil {
        log.Fatalln(err)
    }
    bucket := "mybucket"
    object := "myobj"
    uid, err := s3Client.NewMultipartUpload(bucket, object, minio.PutObjectOptions{})
    if err != nil {
        log.Fatalln(err)
    }

    p1, _ := s3Client.PutObjectPart(bucket, object, uid, 1, bytes.NewReader([]byte{'a'}), 1, nil, nil)

    p2, _ := s3Client.PutObjectPart(bucket, object, uid, 2, bytes.NewReader([]byte{'a'}), 1, nil, nil)

    parts := []minio.CompletePart{
        minio.CompletePart{PartNumber: p1.PartNumber, ETag: p1.ETag},
        minio.CompletePart{PartNumber: p2.PartNumber, ETag: p2.ETag},
    }

    err = s3Client.CompleteMultipartUpload(bucket, object, uid, parts)

    fmt.Println(err)
}
nitisht commented 6 years ago

fixed with https://github.com/minio/mint/pull/177