Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update mint to latest SDK releases and unify log output #141

Merged
merged 1 commit into from
Sep 26, 2017

Conversation

nitisht
Copy link
Contributor

@nitisht nitisht commented Sep 20, 2017

Update mint to latest SDK releases and unify log output. Also includes following fixes:

  • Add newline for minio-js logger for ease of reading
  • Fix datafile creation as blocks greater than 34MB are not supported. Use shred to create data files as it is faster and avoids the block size issue with dd command
  • Escape mc logs before printing as JSON

Fixes #35

Issue with dd command:

$ sudo dd if=/dev/urandom of=datafile-65-MB bs=65M count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0.252857 s, 133 MB/s

max block size of 34MB is supported. We could have used smaller blocks with higher count, say bs=1M count=65 with dd, but shred is much faster.

$ time shred -s 65M -> myfile

real    0m0.705s
user    0m0.148s
sys    0m0.044s

$ time dd if=/dev/urandom of=bigfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 6.92338 s, 9.8 MB/s

real    0m6.930s
user    0m0.000s
sys    0m6.908s

@nitisht
Copy link
Contributor Author

nitisht commented Sep 20, 2017

@harshavardhana older minio-go releases used tags like v3.0.2 while the latest release is just 3.0.3 , is this intended?

@harshavardhana
Copy link
Member

@harshavardhana older minio-go releases used tags like v3.0.2 while the latest release is just 3.0.3 , is this intended?

It was intended because to be consistent with all libraries, it was a mistake. We corrected it.

@nitisht nitisht changed the title [WIP] : Update mint to latest SDK releases and unify log output Update mint to latest SDK releases and unify log output Sep 21, 2017
@nitisht
Copy link
Contributor Author

nitisht commented Sep 21, 2017

It was intended because to be consistent with all libraries, it was a mistake. We corrected it.

Thanks. PR is ready for review now.

@@ -15,7 +15,7 @@
# limitations under the License.
#

MINIO_GO_VERSION="v3.0.2"
MINIO_GO_VERSION="3.0.3"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are we going to wait for the new release of go sdk? or just use the 3.0.3 version

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can move with 3.0.3 unless mint depends on 4.0.0

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not that I know of, so we are good.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

due to the failure below, I think we should wait for minio-go 4.0.0 if that is not too far.

Copy link
Contributor

@poornas poornas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

travis seems to fail because go-humanize package isn't pulled in.

@nitisht nitisht force-pushed the mint-json branch 4 times, most recently from 72adf96 to ca714de Compare September 21, 2017 14:14
@nitisht
Copy link
Contributor Author

nitisht commented Sep 21, 2017

Updated the PR @harshavardhana @poornas

There are couple of failures currently:

  • aws-sdk-ruby fails at : {"name":"aws-sdk-ruby","function":"removeObjects(bucket_name)","args":{"bucket_name":"e55a37cd4280"},"duration":184.56,"error":"Failed to clean-up bucket 'e55a37cd4280': undefined method merge' for "datafile-1-MB":String","status":"FAIL"}` tracked by failure in aws-sdk-ruby #142

  • minio-go fails at: {"alert":"","args":{"bucketName":"minio-go-testqe45pn0c3cym94zsu","metadata":null,"objectName":"minio-go-testqe45pn0c3cym94zsuunique","size":-1},"duration":189,"function":"PutObjectWithSize(bucketName, objectName, reader, size, metadata, progress)","message":"Expected upload object size � got �","name":"minio-go","status":"fail"}

Need to verify if these are issues at mint end or server issues.

@nitisht
Copy link
Contributor Author

nitisht commented Sep 21, 2017

For minio-go failure, I see that the commit

commit f98a667ab5d283564aa82ac0aec08dcf34b4e5bb
Author: poornas <poornas@users.noreply.github.com>
Date:   Tue Sep 19 17:43:11 2017 -0700

    Refactor PutObject API calls to add context and additional metadata. (#811)
    
    Add additional Api calls PutObjectWithContext, GetObjectWithContext,
    FPutObjectWithContext and FGetObjectWithContext to allow request cancellation.
    
    Remove PutObjectWithSize,PutObjectStreaming,PutEncryptedObject,PutObjectWithMetadata
    calls and fold into a single PutObject call which accepts a pointer to PutObjectOptions
    struct. PutObjectOptions struct allows user to optionally set custom metadata, content response headers,
    encryption materials module for data encryption, and specify number of threads for a multi-part
    Put operation. Currently,Content-Encoding,Cache-Control, Content-Type and Content-Disposition headers
    are supported.
    
    Deprecated support for Go versions 1.5.x,1.6.x. Add support for 1.9.x

has removed PutObjectWithSize, so the latest version of minio-go tests pass.

mint.sh Outdated
mkdir -p "$BASE_LOG_DIR/$sdk_name"

(cd "$sdk_dir" && ./run.sh "$BASE_LOG_DIR/$sdk_name/$OUTPUT_LOG_FILE" "$BASE_LOG_DIR/$sdk_name/$ERROR_LOG_FILE")
(cd "$sdk_dir" && ./run.sh "$BASE_LOG_DIR/$LOG_FILE" "$BASE_LOG_DIR/$ERROR_FILE")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If all SDKs write error into one file, how do we relate error message with SDK?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@balamurugana the assumption is that errors reported will be build issues and other uncaught errors while running the tests (if at all, small number of errors reported), and can be identified as each language has it own way to report, but I can add separate directories as earlier if you think that is more clearer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no indication on what sdk throws the error, it is not identifiable by seeing the log, hence you would need to have separate directory for each sdk

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@@ -494,7 +494,7 @@ function test_put_object_error() {

# if make bucket succeeds, try to upload an object with invalid name
if [ $rv -eq 0 ]; then
function="${MC_CMD} cp $MINT_DATA_DIR/datafile-1-MB ${SERVER_ALIAS}/${bucket_name}//2123123\123"
function="${MC_CMD} cp $MINT_DATA_DIR/datafile-1-MB ${SERVER_ALIAS}/${bucket_name}//2123123..123"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\1 and . are different value

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\ is causing error with parsing of json, let me try to find a way to keep \ and still parse json properly

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you need to json encode the string

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@poornas
Copy link
Contributor

poornas commented Sep 21, 2017

@nitisht, the minio-go failure is not related withPutObjectWithSize() removal since you are pulling by the 3.0.3 release tag.

@nitisht
Copy link
Contributor Author

nitisht commented Sep 22, 2017

the minio-go failure is not related withPutObjectWithSize() removal since you are pulling by the 3.0.3 release tag.

@poornas yes I meant with current HEAD of minio-go repo all functional tests pass, while mint fails as it pulls version 3.0.3

@nitisht
Copy link
Contributor Author

nitisht commented Sep 22, 2017

With #144 aws-sdk-ruby tests pass, minio-go is currently failing, I am looking into it

@nitisht
Copy link
Contributor Author

nitisht commented Sep 22, 2017

minio-go tests are passing now. Failure was due to erroneous 65 MB data file creation as explained above. Here is the current mint log against minio/minio:edge server image

{"name":"aws-sdk-php","function":"getBucketLocation ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412"},"duration":"5","status":"PASS"}
{"name":"aws-sdk-php","function":"listBuckets ( array $params = [] )","args":[],"duration":"12","status":"PASS"}
{"name":"aws-sdk-php","function":"listObjects ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"76","status":"PASS"}
{"name":"aws-sdk-php","function":"listMultipartUploads ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"65","status":"PASS"}
{"name":"aws-sdk-php","function":"headBucket ( array $params = [] )","args":["aws-sdk-php-bucket-03412","aws-sdk-php-bucket-01342"],"duration":"80","status":"PASS"}
{"name":"aws-sdk-php","function":"headObject ( array $params = [] )","args":{"aws-sdk-php-bucket-03412":"obj1","aws-sdk-php-bucket-01342":"obj2"},"duration":"3","status":"PASS"}
{"name":"aws-sdk-php","function":"getObject ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"8","status":"PASS"}
{"name":"aws-sdk-php","function":"copyObject ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"10","status":"PASS"}
{"name":"aws-sdk-php","function":"deleteObjects (array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"-977","status":"PASS"}
{"name":"aws-sdk-php","function":"anonDeleteObjects ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"25","status":"PASS"}
{"name":"aws-sdk-php","function":"createMultipartUpload ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"175","status":"PASS"}
{"name":"aws-sdk-php","function":"uploadPart ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"164","status":"PASS"}
{"name":"aws-sdk-php","function":"abortMultipartupload ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-03412","Object":"obj1"},"duration":"19","status":"PASS"}
{"name":"aws-sdk-php","function":"getBucketPolicy ( array $params = [] )","args":{"Bucket":"aws-sdk-php-bucket-24301"},"duration":"21","status":"PASS"}
{"name":"aws-sdk-ruby","function":"listBuckets()","args":{},"duration":36.23,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"listObjects(bucket_name)","args":{"bucket_name":"cf1bddb85964"},"duration":208.85,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"makeBucket(bucket_name)","args":{"bucket_name":"cf1bddb85964"},"duration":19.04,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"bucketExists?(bucket_name)","args":{"bucket_name":"non-existing-bucket"},"duration":5.25,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"removeBucket(bucket_name)","args":{"bucket_name":"cf1bddb85964"},"duration":13.37,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"putObject(bucket_name,file)","args":{"bucket_name":"cf1bddb85964","file":"/mint/data/datafile-1-MB"},"duration":37.6,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"removeObject(bucket_name,file)","args":{"bucket_name":"cf1bddb85964","file":"/mint/data/datafile-1-MB"},"duration":31.48,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"getObject(bucket_name,file,destination)","args":{"bucket_name":"cf1bddb85964","file":"/mint/data/datafile-1-MB","destination":"/tmp"},"duration":51.15,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"copyObject(source_bucket_name,target_bucket_name,source_file_name,target_file_name)","args":{"source_bucket_name":"cf1bddb85964","target_bucket_name":"e139af8cf9d3","source_file_name":"datafile-1-MB","target_file_name":""},"duration":68.5,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"copyObject(source_bucket_name,target_bucket_name,source_file_name,target_file_name)","args":{"source_bucket_name":"cf1bddb85964","target_bucket_name":"e139af8cf9d3","source_file_name":"datafile-1-MB","target_file_name":"datafile-1-MB-copy"},"duration":82.61,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"presignedGet(bucket_name,file_name)","args":{"bucket_name":"cf1bddb85964","file_name":"datafile-1-MB"},"duration":47.84,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"presignedPut(bucket_name,file_name)","args":{"bucket_name":"cf1bddb85964","file_name":"datafile-1-MB"},"duration":59.69,"status":"PASS"}
{"name":"aws-sdk-ruby","function":"presignedPost(bucket_name,file_name,expires_in_sec,max_byte_size)","args":{"bucket_name":"cf1bddb85964","file_name":"datafile-1-MB","expires_in_sec":60,"max_byte_size":3145728},"duration":48.14,"status":"PASS"}
{"name": "awscli", "duration": "1144", "function": "delete_bucket", "status": "PASS"}
{"name": "awscli", "duration": "1529", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api get-object --bucket awscli-mint-test-bucket-4325 --key datafile-1-MB /tmp/datafile-1-MB", "status": "PASS"}
{"name": "awscli", "duration": "2674", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api list-objects --bucket awscli-mint-test-bucket-27049 --prefix datafile-1-MB", "status": "PASS"}
{"name": "awscli", "duration": "2338", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api create-multipart-upload --bucket awscli-mint-test-bucket-6739 --key awscli-mint-test-bucket-6739-object", "status": "PASS"}
{"name": "awscli", "duration": "1566", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api copy-object --bucket awscli-mint-test-bucket-17882 --key datafile-1-MB-copy --copy-source awscli-mint-test-bucket-17882/datafile-1-MB", "status": "PASS"}
{"name": "awscli", "duration": "1527", "function": "aws --endpoint-url http://127.0.0.1:9000 s3 presign s3://awscli-mint-test-bucket-6638/datafile-1-MB", "status": "PASS"}
{"name": "awscli", "duration": "2264", "function": "aws --endpoint-url http://127.0.0.1:9000 s3 cp /mint/data/datafile-65-MB s3://awscli-mint-test-bucket-3140/datafile-65-MB", "status": "PASS"}
{"name": "awscli", "duration": "2499", "function": "aws --endpoint-url http://127.0.0.1:9000 s3 sync /mint/data s3://awscli-mint-test-bucket-7615/", "status": "PASS"}
{"name": "awscli", "duration": "2489", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api list-objects-v2 --bucket awscli-mint-test-bucket-24054 --prefix datafile-1-MB --max-keys=-1", "status": "PASS"}
{"name": "awscli", "duration": "5061", "function": "aws --endpoint-url http://127.0.0.1:9000 s3api put-object --body /mint/data/datafile-1-MB --bucket awscli-mint-test-bucket-10596 --key datafile-1-MB --content-length -1", "status": "PASS"}
{"name": "mc", "duration": "18", "function": "delete_bucket\n", "status": "PASS"}
{"name": "mc", "duration": "111", "function": "./mc cp --json target/mc-mint-test-bucket-19889/datafile-1-MB /tmp\n", "status": "PASS"}
{"name": "mc", "duration": "1074", "function": "./mc cp --json target/mc-mint-test-bucket-18517/datafile-65-MB /tmp\n", "status": "PASS"}
{"name": "mc", "duration": "79", "function": "./mc share --json upload target/mc-mint-test-bucket-29581/datafile-1-MB\n", "status": "PASS"}
{"name": "mc", "duration": "73", "function": "./mc share --json download target/mc-mint-test-bucket-11035/datafile-1-MB\n", "status": "PASS"}
{"name": "mc", "duration": "1149", "function": "./mc mirror -q /mint/data target/mc-mint-test-bucket-29488\n", "status": "PASS"}
{"name": "mc", "duration": "53", "function": "./mc cat target/mc-mint-test-bucket-18894/run.sh\n", "status": "PASS"}
{"name": "mc", "duration": "6", "function": "./mc mb target/Mc-mint-test-bucket-23039\n", "status": "PASS"}
{"name": "mc", "duration": "44", "function": "./mc cp /mint/data/datafile-1-MB target/mc-mint-test-bucket-12643//2123123\\123\n", "status": "PASS"}
{"args":{"bucketName":"","region":"eu-west-1"},"duration":0,"function":"MakeBucket(bucketName, region)","message":"Skipped region functional tests for non s3 runs","name":"minio-go","status":"na"}
{"args":{"bucketName":"minio-go-testo9c1p594umlmgttj5","objectName":"yv0fyfmvft6lgzt6k4abr0k9lac1ky","region":"eu-west-1"},"duration":7,"function":"MakeBucket(bucketName, region)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testeyoqf95yozp5rirod","objectName":"minio-go-testeyoqf95yozp5rirod-resumable"},"duration":18,"function":"RemoveIncompleteUpload(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testgqtiwdfheyqobfqfb","contentType":"","fileName":"/tmp/FPutObjectTest909147429.gtar","objectName":"minio-go-testgqtiwdfheyqobfqfbFPutObject-Octet"},"duration":126,"function":"FPutObject(bucketName, objectName, fileName, contentType)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"","region":"eu-west-1"},"duration":0,"function":"MakeBucket(bucketName, region)","message":"Skipped region functional tests for non s3 runs","name":"minio-go","status":"na"}
{"args":{"bucketName":"minio-go-testhuv6vk5nl4hovt4yz","objectName":"z9j60fbs12tnplzhgbbm2ht1s6zs46"},"duration":9,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-teste4dt5dep136imljzi","objectName":"qpp3jyzpfn6ikyfdk2bz3u3yydrino"},"duration":16,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"destination":{},"source":{"Headers":{"X-Amz-Copy-Source":["minio-go-test3pwzk0jsd2pm51xo1/v3mv2lxwnk6u0dgky6ifdn0z1otvs4"],"X-Amz-Copy-Source-If-Match":["e97d38a12b328763263c014bde047514"],"X-Amz-Copy-Source-If-Modified-Since":["Mon, 31 Mar 2014 00:00:00 GMT"]}}},"duration":26,"function":"CopyObject(destination, source)","name":"minio-go","status":"pass"}
{"args":{},"duration":47,"function":"testFunctionalV2()","name":"minio-go","status":"pass"}
{"args":{},"duration":28,"function":"testComposeObjectErrorCasesWrapper(minioClient)","name":"minio-go","status":"pass"}
{"args":{"destination":{},"sources":[{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testzpik9r3dbwnco2eqm/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-0"]}}]},"duration":277,"function":"ComposeObject(destination, sources)","name":"minio-go","status":"pass"}
{"args":{},"duration":69,"function":"testEncryptedCopyObjectWrapper(minioClient)","name":"minio-go","status":"pass"}
{"args":{"destination":{},"source":[{"Headers":{"X-Amz-Copy-Source":["minio-go-testqlfj4pkmgmvihzxte/srcObject"],"X-Amz-Copy-Source-If-Match":["91be0b892e47ede9de06aac14ca0369e"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testqlfj4pkmgmvihzxte/srcObject"],"X-Amz-Copy-Source-If-Match":["91be0b892e47ede9de06aac14ca0369e"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}}]},"duration":233,"function":"ComposeObject(destination, sources)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"","metadata":null,"objectName":"","size":0},"duration":10,"function":"PutObjectWithSize(bucketName, objectName, reader, size, metadata, progress)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testel665uwognth3j1qa","metadata":null,"objectName":"minio-go-testel665uwognth3j1qaunique","size":-1},"duration":303,"function":"PutObjectWithSize(bucketName, objectName, reader, size, metadata, progress)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testz0jny2xparvp10wfh","objectName":"minio-go-testz0jny2xparvp10wfhunique4"},"duration":6519,"function":"PutObjectStreaming(bucketName, objectName, reader)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"","region":"eu-central-1"},"duration":0,"function":"MakeBucket(bucketName, region)","message":"Skipped region functional tests for non s3 runs","name":"minio-go","status":"na"}
{"args":{"bucketName":"","region":"eu-central-1"},"duration":0,"function":"MakeBucket(bucketName, region)","message":"Skipped region functional tests for non s3 runs","name":"minio-go","status":"na"}
{"args":{"bucketName":"minio-go-test5dzq52lflr9gwbvqm","metadata":{"Content-Type":["custom/contenttype"]},"objectName":"nu6335q9lcb95qhlmwegh9rqwfuk1w"},"duration":463,"function":"PutObjectWithMetadata(bucketName, objectName, reader, metadata, progress)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testwuy1a61zfjqcc1bpf","objectContentType":"binary/octet-stream","objectName":"z1msr9uo6lhauyqhvf1tuc4bnqxt96"},"duration":481,"function":"PutObject(bucketName, objectName, reader, objectContentType)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test2tfw1lly5tp13gvji","objectName":"test-object"},"duration":21,"function":"PutObjectStreaming(bucketName, objectName, reader)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testxhngr96454ux26s4n","isRecursive":true,"objectName":"minio-go-testxhngr96454ux26s4n-resumable"},"duration":1116,"function":"ListIncompleteUploads(bucketName, objectName, isRecursive, doneCh)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testetfnroqp0q4xfc5tn","objectName":"iatey94lzb1dkulwohxbdjoz9jc6fr"},"duration":8,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testk1kkzxxwbhu0xrfmm","objectName":"fv111dxssblnvswatx5m1wqlttylwl"},"duration":7,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test4noiqkzkdc26r1lod"},"duration":10307,"function":"RemoveObjects(bucketName, objectsCh)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testcdhkcyxikzd9uhwun","objectName":"minio-go-testcdhkcyxikzd9uhwun-resumable"},"duration":248,"function":"RemoveIncompleteUpload(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testcqq4pk52qvh0wiotg","fileName":"","objectContentType":"testapplication/octet-stream","objectName":"minio-go-testcqq4pk52qvh0wiotgFPutObject-standard"},"duration":458,"function":"FPutObject(bucketName, objectName, fileName, objectContentType)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"","objectName":"minio-go-test6v9pngp1areno5wuhFPutObject"},"duration":2597,"function":"FPutObject(bucketName, objectName, fileName, objectContentType)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test1edhm6bhdx44k9hsm","objectName":"w44puacngeleehsbeywjjgr0w95bfp"},"duration":9,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test6ppvwv2ao9tesrw3v","objectName":"gp4ojflk9jojz55febhrl4wt2w9pej"},"duration":23,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"policy":{}},"duration":17,"function":"PresignedPostPolicy(policy)","name":"minio-go","status":"pass"}
{"args":{"dst":{},"src":{"Headers":{"X-Amz-Copy-Source":["minio-go-testkw1rxipb6mkbk9zbi/4iawxdh5fn2x4qhjqfyq4mcne0ehni"],"X-Amz-Copy-Source-If-Match":["e97d38a12b328763263c014bde047514"],"X-Amz-Copy-Source-If-Modified-Since":["Mon, 31 Mar 2014 00:00:00 GMT"]}}},"duration":43,"function":"CopyObject(dst, src)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test93vaqhjr12kx1yulj","cbcMaterials":{},"metadata":"custom/contenttype","objectName":"5tscx3ghmwevzpwla4449tplgq6doq"},"duration":4119,"function":"PutEncryptedObject(bucketName, objectName, reader, cbcMaterials, metadata, progress)","name":"minio-go","status":"pass"}
{"args":{},"duration":48,"function":"testComposeObjectErrorCasesWrapper(minioClient)","name":"minio-go","status":"pass"}
{"args":{"destination":{},"sources":[{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-test5mt24tsw0pehjz6oa/srcObject"],"X-Amz-Copy-Source-If-Match":["2b5c91ad399409ec9b409b66f5bb00fb"],"X-Amz-Copy-Source-Range":["bytes=0-0"]}}]},"duration":333,"function":"ComposeObject(destination, sources)","name":"minio-go","status":"pass"}
{"args":{"destination":{},"source":[{"Headers":{"X-Amz-Copy-Source":["minio-go-testqwhtvq0s1yom5tgl9/srcObject"],"X-Amz-Copy-Source-If-Match":["91be0b892e47ede9de06aac14ca0369e"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}},{"Headers":{"X-Amz-Copy-Source":["minio-go-testqwhtvq0s1yom5tgl9/srcObject"],"X-Amz-Copy-Source-If-Match":["91be0b892e47ede9de06aac14ca0369e"],"X-Amz-Copy-Source-Range":["bytes=0-5242879"]}}]},"duration":1048,"function":"ComposeObject(destination, sources)","name":"minio-go","status":"pass"}
{"args":{},"duration":79,"function":"testEncryptedCopyObjectWrapper(minioClient)","name":"minio-go","status":"pass"}
{"args":{"bucketName":""},"duration":0,"function":"SetBucketNotification(bucketName)","message":"Skipped notification test as it is not configured","name":"minio-go","status":"na"}
{"args":{"bucketName":"minio-go-testt4zh9kwoxyu0b3xdd"},"duration":70,"function":"testFunctional()","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-test5t5qxfrjpbd9go4ut","objectName":""},"duration":13,"function":"GetObject(bucketName, objectName)","name":"minio-go","status":"pass"}
{"args":{"bucketName":"minio-go-testrnoo0frs1rwrh2w5d","contentType":"binary/octet-stream","fileToUpload":{},"objectName":"test-file-3984373741"},"duration":24,"function":"PutObject(bucketName, objectName, fileToUpload, contentType)","name":"minio-go","status":"pass"}
{"name":"minio-java","function":"makeBucket(String bucketName)","duration":155,"status":"PASS"}
{"name":"minio-java","function":"listBuckets()","duration":28,"status":"PASS"}
{"name":"minio-java","function":"bucketExists(String bucketName)","duration":14,"status":"PASS"}
{"name":"minio-java","function":"removeBucket(String bucketName)","duration":10,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, String filename)","args":"filename: 1MB","duration":101,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, String filename)","args":"filename: 65MB","duration":1145,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, String filename, String contentType)","args":"contentType: application/javascript","duration":28,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream body, long size, String contentType)","args":"size: 1 MB, objectName: application/javascript","duration":108,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream body, long size, String contentType)","args":"contentType: null, size: 13631488","duration":877,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream body, long size, String contentType)","args":"size: 1 MB, contentType: application/javascript","duration":111,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream body, String contentType)","args":"contentType: application/javascript","duration":156,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream body, String contentType)","args":"contentType: application/javascript","duration":12874,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream stream, long size, String contentType, SecretKey key)","args":"size: 13 MB","duration":436,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream stream, long size, String contentType, KeyPair keyPair)","args":"size: 13 MB","duration":522,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, InputStream stream, long size, Map<String, String> headerMap)","args":"size: 13 MB","duration":568,"status":"PASS"}
{"name":"minio-java","function":"statObject(String bucketName, String objectName)","duration":33,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName)","duration":193,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, long offset)","args":"offset: 1000","duration":206,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, long offset, Long length)","args":"offset: 1000, length: 1 MB","duration":180,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, String filename)","duration":179,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, String filename)","args":"objectName: path/to/minio-java-test-1806apj","duration":209,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, SecretKey key)","duration":425,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName, KeyPair keyPair)","duration":421,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName)","duration":35,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName, final String prefix)","args":"prefix :minio","duration":49,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName, final String prefix, final boolean recursive)","args":"prefix :minio, recursive: true","duration":56,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName, final String prefix, final boolean recursive)","args":"prefix :minioemptybucket, recursive: true","duration":6,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName, final String prefix, final boolean recursive)","args":"prefix :minio, recursive: true","duration":11953,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName, final String prefix, final boolean recursive, final boolean useVersion1)","args":"prefix :minio, recursive: true, useVersion1: true","duration":30,"status":"PASS"}
{"name":"minio-java","function":"removeObject(String bucketName, String objectName)","duration":9,"status":"PASS"}
{"name":"minio-java","function":"removeObject(final String bucketName, final Iterable<String> objectNames)","duration":25,"status":"PASS"}
{"name":"minio-java","function":"listIncompleteUploads(String bucketName)","duration":299,"status":"PASS"}
{"name":"minio-java","function":"listIncompleteUploads(String bucketName, String prefix)","duration":255,"status":"PASS"}
{"name":"minio-java","function":"listIncompleteUploads(final String bucketName, final String prefix, final boolean recursive)","args":"prefix: minio, recursive: true","duration":180,"status":"PASS"}
{"name":"minio-java","function":"removeIncompleteUpload(String bucketName, String objectName)","duration":157,"status":"PASS"}
{"name":"minio-java","function":"presignedGetObject(String bucketName, String objectName)","duration":197,"status":"PASS"}
{"name":"minio-java","function":"presignedGetObject(String bucketName, String objectName, Integer expires)","duration":182,"status":"PASS"}
{"name":"minio-java","function":"presignedGetObject(String bucketName, String objectName, Integer expires, Map<String, String> reqParams)","duration":197,"status":"PASS"}
{"name":"minio-java","function":"presignedPutObject(String bucketName, String objectName)","duration":22,"status":"PASS"}
{"name":"minio-java","function":"presignedPutObject(String bucketName, String objectName, Integer expires)","duration":18,"status":"PASS"}
{"name":"minio-java","function":"presignedPostPolicy(PostPolicy policy)","duration":99,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName)","duration":182,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","args":"CopyConditions: invalidETag","duration":171,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","duration":225,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","duration":265,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","duration":166,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","args":"CopyCondition: modifiedDateCondition","duration":177,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions)","args":"CopyCondition: invalidUnmodifiedCondition","duration":133,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName, CopyConditions copyConditions, Map<String, String> metadata)","duration":196,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":4,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":85,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":10,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":11,"status":"PASS"}
{"name":"minio-java","function":"setBucketPolicy(String bucketName, String objectPrefix, PolicyType policyType)","duration":16,"status":"PASS"}
{"name":"minio-java","function":"setBucketPolicy(String bucketName, String objectPrefix, PolicyType policyType)","duration":17,"status":"PASS"}
{"name":"minio-java","function":"setBucketPolicy(String bucketName, String objectPrefix, PolicyType policyType)","duration":20,"status":"PASS"}
{"name":"minio-java","function":"setBucketPolicy(String bucketName, String objectPrefix, PolicyType policyType)","duration":51,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, String filename)","args":"filename: threaded65MB","duration":6872,"status":"PASS"}
{"name":"minio-java","function":"makeBucket(String bucketName)","duration":3,"status":"PASS"}
{"name":"minio-java","function":"listBuckets()","duration":12,"status":"PASS"}
{"name":"minio-java","function":"bucketExists(String bucketName)","duration":7,"status":"PASS"}
{"name":"minio-java","function":"removeBucket(String bucketName)","duration":6,"status":"PASS"}
{"name":"minio-java","function":"putObject(String bucketName, String objectName, String filename)","args":"filename: 1MB","duration":27,"status":"PASS"}
{"name":"minio-java","function":"statObject(String bucketName, String objectName)","duration":12,"status":"PASS"}
{"name":"minio-java","function":"getObject(String bucketName, String objectName)","duration":98,"status":"PASS"}
{"name":"minio-java","function":"listObjects(final String bucketName)","duration":24,"status":"PASS"}
{"name":"minio-java","function":"removeObject(String bucketName, String objectName)","duration":9,"status":"PASS"}
{"name":"minio-java","function":"listIncompleteUploads(String bucketName)","duration":168,"status":"PASS"}
{"name":"minio-java","function":"removeIncompleteUpload(String bucketName, String objectName)","duration":174,"status":"PASS"}
{"name":"minio-java","function":"presignedGetObject(String bucketName, String objectName)","duration":109,"status":"PASS"}
{"name":"minio-java","function":"presignedPutObject(String bucketName, String objectName)","duration":10,"status":"PASS"}
{"name":"minio-java","function":"presignedPostPolicy(PostPolicy policy)","duration":42,"status":"PASS"}
{"name":"minio-java","function":"copyObject(String bucketName, String objectName, String destBucketName)","duration":149,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":4,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":9,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":10,"status":"PASS"}
{"name":"minio-java","function":"getBucketPolicy(String bucketName, String objectPrefix)","duration":11,"status":"PASS"}
{"name":"minio-java","function":"setBucketPolicy(String bucketName, String objectPrefix, PolicyType policyType)","duration":36,"status":"PASS"}
{"name":"minio-js","status":"PASS","function":"listBuckets(cb)","args":"","alert":"","duration":38}
{"name":"minio-js","status":"PASS","function":"listBuckets()","args":"","alert":"","duration":23}
{"name":"minio-js","status":"PASS","function":"makeBucket(bucketName, region, cb)","args":"region:us-east-2","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"makeBucket(bucketName, region, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"removeBucket(bucketName, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"makeBucket(bucketName, region)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"removeBucket(bucketName)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"bucketExists(bucketName, cb)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"bucketExists(bucketName, cb)","args":"bucketName:nonexistentbucket","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"bucketExists(bucketName)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"removeBucket(bucketName, cb)","args":"bucketName:nonexistentbucket","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"makeBucket(bucketName, region)","args":"region:us-east-1","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, contentType)","args":"objectName:MultiPath100kbObjectBufferName,stream:100Kib","alert":"","duration":16}
{"name":"minio-js","status":"PASS","function":"getObject(bucketName, objectName, callback)","args":"objectName:MultiPath100kbObjectBufferName","alert":"download 100KiB Buffer and match content","duration":4}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName)","args":"objectName:MultiPath100kbObjectBufferName","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"fPutObject(bucketName, objectName, filePath, contentType, callback)","args":"","alert":"","duration":16}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, size, contentType, callback)","args":"objectName:100kbObjectName","alert":"","duration":10}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, size, contentType, callback)","args":"objectName:100kbObjectName","alert":"","duration":8}
{"name":"minio-js","status":"PASS","function":"getObject(bucketName, objectName, callback)","args":"objectName:100kbObjectName","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, callback)","args":"objectName:100kbObjectName, stream:100kb","alert":"","duration":10}
{"name":"minio-js","status":"PASS","function":"getObject(bucketName, objectName, callback)","args":"objectName:100kbObjectName","alert":"download 100KiB Buffer and match content","duration":3}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, contentType)","args":"stream:100Kib","alert":"","duration":9}
{"name":"minio-js","status":"PASS","function":"getPartialObject(bucketName, objectName, offset, length, cb)","args":"offset:0, length=1024","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"getPartialObject(bucketName, objectName, offset, length, cb)","args":"offset:1024, length=1024","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getPartialObject(bucketName, objectName, offset, length, cb)","args":"offset:1024","duration":2}
{"name":"minio-js","status":"PASS","function":"getObject(bucketName, objectName)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, cb)","args":"objectName:","alert":"6mbObjectName","duration":80}
{"name":"minio-js","status":"PASS","function":"getObject(bucketName, objectName, cb)","args":"objectName:","alert":"6mbObjectName","duration":20}
{"name":"minio-js","status":"PASS","function":"getPartialObject(bucketName, objectName, offset, length, cb)","args":"length:100*1024","alert":"download partial data (100kb of the 6mb file) and match content","duration":3}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, cb)","args":"","alert":"","duration":32}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject)","args":"","alert":"","duration":37}
{"name":"minio-js","status":"PASS","function":"statObject(bucketName, objectName, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"statObject(bucketName, objectName)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName)","args":"","alert":"remove objects created for test","duration":13}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, contentType, cb)","args":"contentType: custom/content-type","alert":"","duration":8}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, cb)","args":"","alert":"","duration":7}
{"name":"minio-js","status":"PASS","function":"statObject(bucketName, objectName, cb)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":7}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":8}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":10}
{"name":"minio-js","status":"PASS","function":"copyObject(bucketName, objectName, srcObject, conditions, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"statObject(bucketName, objectName, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, cb)","args":"","alert":"remove objects created for test","duration":2}
{"name":"minio-js","status":"PASS","function":"initiateNewMultipartUpload(bucketName, objectName, contentType, cb)","args":"","alert":"","duration":12}
{"name":"minio-js","status":"PASS","function":"fPutObject(bucketName, objectName, filePath, contentType, callback)","args":"","alert":"","duration":132}
{"name":"minio-js","status":"PASS","function":"fPutObject(bucketName, objectName, filePath, contentType, callback)","args":"contentType: customContentType","alert":"","duration":140}
{"name":"minio-js","status":"PASS","function":"fGetObject(bucketName, objectName, filePath, callback)","args":"","alert":"verify checksum","duration":55}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, filePath, callback)","args":"","alert":"","duration":4}
{"name":"minio-js","status":"PASS","function":"fPutObject(bucketName, objectName, filePath, contentType)","args":"","alert":"","duration":130}
{"name":"minio-js","status":"PASS","function":"fGetObject(bucketName, objectName, filePath)","args":"","alert":"","duration":26}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, filePath, callback)","args":"","alert":"","duration":6}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, contentType, cb)","args":"","alert":"","duration":137}
{"name":"minio-js","status":"PASS","function":"fGetObject(bucketName, objectName, filePath, callback)","args":"filePath: resumePartialDownload","alert":"","duration":30}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, filePath, callback)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy, cb)","args":"bucketPolicy:readonly","alert":"","duration":4}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix, cb)","args":"","alert":"","duration":4}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy, cb)","args":"bucketPolicy:writeonly","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy, cb)","args":"bucketPolicy:readwrite","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy)","args":"objectPrefix: prefix","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix)","args":"objectPrefix: prefix","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix)","args":"objectPrefix: wrongprefix","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"setBucketPolicy(bucketName, objectPrefix, bucketPolicy, cb)","args":"bucketPolicy: NONE","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"getBucketPolicy(bucketName, objectPrefix, cb)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"presignedPutObject(bucketName, objectName, expires, cb)","args":"","alert":"","duration":15}
{"name":"minio-js","status":"PASS","function":"presignedPutObject(bucketName, objectName, expires)","args":"expires:-123","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"presignedPutObject(bucketName, objectName)","args":"","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"presignedGetObject(bucketName, objectName, expires, cb)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"presignedGetObject(bucketName, objectName, cb)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"presignedGetObject(bucketName, objectName, expires)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"presignedGetObject(bucketName, objectName, expires, respHeaders, cb)","args":"","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"presignedPostPolicy(postPolicy, cb)","args":"","alert":"","duration":15}
{"name":"minio-js","status":"PASS","function":"presignedPostPolicy(postPolicy)","args":"postPolicy: null","alert":"","duration":0}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, done)","args":"","alert":"","duration":2}
{"name":"minio-js","status":"PASS","function":"putObject(bucketName, objectName, stream, size, contentType, callback)","args":"","alert":"Create 10 objects","duration":23}
{"name":"minio-js","status":"PASS","function":"listObjects(bucketName, prefix, recursive)","args":"prefix: miniojsprefix, recursive:true","alert":"","duration":6}
{"name":"minio-js","status":"PASS","function":"listObjects(bucketName, prefix, recursive)","args":"bucketName: empty, recursive:true","alert":"","duration":1}
{"name":"minio-js","status":"PASS","function":"listObjects(bucketName, prefix, recursive)","args":"recursive:false","alert":"","duration":3}
{"name":"minio-js","status":"PASS","function":"listObjectsV2(bucketName, prefix, recursive)","args":"recursive:true","alert":"","duration":4}
{"name":"minio-js","status":"PASS","function":"removeObject(bucketName, objectName, callback)","args":"","alert":"Remove 10 objects","duration":5}
{"name":"minio-js","status":"PASS","function":"listenBucketNotification(bucketName, prefix, suffix, events)","args":"events:bad","alert":"","duration":5}
{"name":"minio-js","status":"PASS","function":"listenBucketNotification(bucketName, prefix, suffix, events)","args":"events: ObjectCreated","alert":"","duration":11058}
{"name":"minio-js","status":"PASS","function":"listenBucketNotification(bucketName, prefix, suffix, events)","args":"events:ObjectRemoved","alert":"","duration":11024}
{"status": "PASS", "function": "make_bucket(bucket_name, location)", "description": "Tests make_bucket api", "alert": null, "name": "minio-py", "message": null, "args": {"bucket_name": "16fd2ee9-b0b9-40ea-b96b-578db52eec91", "location": ""}, "error": null, "duration": 0.01}
{"status": "PASS", "function": "list_buckets()", "description": "Tests list_buckets api", "alert": null, "name": "minio-py", "message": null, "args": {}, "error": null, "duration": 0.01}
{"status": "PASS", "function": "fput_object(bucket_name, object_name, file_path, content_type, metadata)", "description": "Tests fput_object api", "alert": null, "name": "minio-py", "message": null, "args": {"metadata": {"x-amz-storage-class": "STANDARD_IA"}, "object_name": "55b72554-ff93-45fb-a2ea-51a8170078bb", "bucket_name": "2d4e4991-3ae4-44aa-891d-94f500597b4a", "file_path": "/mint/data/datafile-1-MB", "content_type": ""}, "error": null, "duration": 0.02}
{"status": "PASS", "function": "fput_object(bucket_name, object_name, file_path, content_type, metadata)", "description": "Tests fput_object api", "alert": null, "name": "minio-py", "message": null, "args": {"metadata": {"x-amz-storage-class": "STANDARD_IA"}, "object_name": "1180a1ab-ae9f-400c-8a06-1c90b0cacb70", "bucket_name": "5c0ab004-43c1-40cb-8a22-2019bbad73d5", "file_path": "/mint/data/datafile-65-MB", "content_type": ""}, "error": null, "duration": 0.82}
{"status": "PASS", "function": "copy_object(bucket_name, object_name, object_source, conditions)", "description": "Tests copy_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_source": "06248d84-aae4-41f2-a545-9ff6b1ad5794-source", "object_name": "06248d84-aae4-41f2-a545-9ff6b1ad5794-copy", "bucket_name": "1fa6f793-b306-48df-bcb2-e072fe3313e0", "conditions": {"set_match_etag": "test-etag"}}, "error": null, "duration": 0.02}
{"status": "PASS", "function": "put_object(bucket_name, object_name, data, length, content_type, metadata)", "description": "Tests put_object api", "alert": null, "name": "minio-py", "message": null, "args": {"content_type": "", "object_name": "3166955c-4568-4ba6-bdc1-8ab358e99c32", "bucket_name": "0f7a05b9-56c8-49de-83aa-e2d66b3b29c1", "data": "LimitedRandomReader(MB_11)", "length": 11534336, "metadata": {"Content-Type": "application/octet-stream", "x-amz-meta-testing": "value"}}, "error": null, "duration": 3.5}
{"status": "PASS", "function": "get_object(bucket_name, object_name, request_headers)", "description": "Tests get_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_name": "43cf21ed-375c-4fb8-a604-49c3127f1d10", "bucket_name": "22145098-938d-4ca6-ae45-641a291dded2", "request_headers": ""}, "error": null, "duration": 0.29}
{"status": "PASS", "function": "fget_object(bucket_name, object_name, file_path, request_headers)", "description": "Tests fget_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_name": "49e5567d-9873-4678-ba1d-9da9a43ea142", "bucket_name": "2c5641eb-3d1d-46df-816f-41731575bede", "file_path": "newfile-f \u65b0", "request_headers": ""}, "error": null, "duration": 0.31}
{"status": "PASS", "function": "list_objects(bucket_name, prefix, recursive)", "description": "Tests list_objects api", "alert": null, "name": "minio-py", "message": null, "args": {"recursive": true, "object_name": "f4eb89db-cbd6-4285-91f1-8cb1c7792ef8", "prefix": "", "bucket_name": "2a113ab9-4333-42f9-9a5a-2d01beaa6c3b"}, "error": null, "duration": 0.59}
{"status": "PASS", "function": "list_objects_v2(bucket_name, prefix, recursive)", "description": "Tests list_objects_v2 api", "alert": null, "name": "minio-py", "message": null, "args": {"recursive": true, "object_name": "79d1d038-e91d-4b9a-af35-18004bde82e9", "prefix": "", "bucket_name": "9e7ed4b8-8922-4485-b77e-9dda0c513d94"}, "error": null, "duration": 0.59}
{"status": "PASS", "function": "presigned_get_object(bucket_name, object_name, expires, response_headers)", "description": "Tests presigned_get_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_name": "95c85170-785e-4eb4-89dc-0be150324149", "bucket_name": "690c85ec-76b3-47ea-80f7-386d3f373ab4", "expires": "", "response_headers": ""}, "error": null, "duration": 0.33}
{"status": "PASS", "function": "presigned_put_object(bucket_name, object_name, expires)", "description": "Tests presigned_put_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_name": "1648e623-3cfc-48d0-b45e-78584c54e93a", "bucket_name": "f05d5663-7642-433b-b928-856bba4bfb30", "expires": ""}, "error": null, "duration": 0.02}
{"status": "PASS", "function": "presigned_post_policy(post_policy)", "description": "Tests presigned_post_policy api", "alert": null, "name": "minio-py", "message": null, "args": {"post_policy": {"prefix": "objectPrefix/", "bucket_name": "a3d5c0d5-e9ec-4698-85bb-b9dc05e6c982", "expires_in_days": 10}}, "error": null, "duration": 0.0}
{"status": "PASS", "function": "get_bucket_policy(bucket_name, prefix)", "description": "Tests get_bucket_policy api", "alert": null, "name": "minio-py", "message": null, "args": {"prefix": "", "bucket_name": "99dd691d-72d9-46b2-9a68-072ee0e4c096"}, "error": null, "duration": 0.01}
{"status": "PASS", "function": "set_bucket_policy(bucket_name, prefix, policy_access)", "description": "Tests set_bucket_policy api", "alert": null, "name": "minio-py", "message": null, "args": {"prefix-2": "", "prefix": "1/", "bucket_name": "e9aa7fe3-6f83-4185-bf27-92e0a694ef10", "policy_access": ""}, "error": null, "duration": 0.02}
{"status": "PASS", "function": "remove_object(bucket_name, object_name)", "description": "Tests remove_object api", "alert": null, "name": "minio-py", "message": null, "args": {"object_name": "1a530a27-8b48-425d-a370-cafc9a10f19b", "bucket_name": "1876cfe9-c064-4618-a432-18c82c00da7f"}, "error": null, "duration": 0.01}
{"status": "PASS", "function": "remove_objects(bucket_name, objects_iter)", "description": "Tests remove_objects api", "alert": null, "name": "minio-py", "message": null, "args": {"bucket_name": "9960fd53-ee00-461a-b9d6-7dd5535362fe", "objects_iter": ["prefix-0", "prefix-1", "prefix-2", "prefix-3", "prefix-4", "prefix-5", "prefix-6", "prefix-7", "prefix-8", "prefix-9"]}, "error": null, "duration": 2.98}
{"status": "PASS", "function": "remove_bucket(bucket_name)", "description": "Tests remove_bucket api", "alert": null, "name": "minio-py", "message": null, "args": {"bucket_name": "add87076-62e7-43e5-9928-444cbee09523", "location": "us-east-1"}, "error": null, "duration": 0.0}

@nitisht nitisht force-pushed the mint-json branch 2 times, most recently from 07a55df to 791697f Compare September 22, 2017 10:04
@nitisht
Copy link
Contributor Author

nitisht commented Sep 22, 2017

This is updated, @harshavardhana @poornas @balamurugana please take a look. we can go ahead with the release once this is in.

@@ -32,7 +32,7 @@ data_file_map["datafile-65-MB"]="65M"
mkdir -p "$MINT_DATA_DIR"
for filename in "${!data_file_map[@]}"; do
echo "creating $MINT_DATA_DIR/$filename"
if ! dd if=/dev/urandom of="$MINT_DATA_DIR/$filename" bs="${data_file_map[$filename]}" count=1 >/dev/null 2>&1; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the problem with dd? doesn't it create a file with specified size containing random content?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dd is too slow and we shouldn't be using urandom. A better tool is shred which is part of coreutils @balamurugana

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran below to see the slowness

$ time dd if=/dev/urandom of=myfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 0.503932 s, 135 MB/s

real	0m0.534s
user	0m0.000s
sys	0m0.528s

$ ls -lhS myfile 
-rw-r--r-- 1 bala bala 65M Sep 22 10:43 myfile
$ time shred -s 65M -> myfile

real	0m0.764s
user	0m0.192s
sys	0m0.080s

$ ls -lhS myfile 
-rw-r--r-- 1 bala bala 65M Sep 22 10:44 myfile

It seems shred is slow.

Why is this change required in this PR?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

time shred -s 65M - > myfile

real    0m0.705s
user    0m0.148s
sys    0m0.044s


time dd if=/dev/urandom of=bigfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 6.92338 s, 9.8 MB/s

real    0m6.930s
user    0m0.000s
sys    0m6.908s

This is on my system.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

 prtsc : harsha : « » minio » minfs : ⎇  master : time dd if=/dev/urandom of=bigfile bs=1M count=65

65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 6.96196 s, 9.8 MB/s

real	0m6.969s
user	0m0.004s
sys	0m6.956s
 prtsc : harsha : « » minio » minfs : ⎇  master : 
 prtsc : harsha : « » minio » minfs : ⎇  master : time dd if=/dev/urandom of=bigfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 6.81594 s, 10.0 MB/s

real	0m6.859s
user	0m0.000s
sys	0m6.852s

And also consistently reproducible..

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not talking about development build @balamurugana , i usually build release image as well. I don't want this level of delay for each dd.

My urandom has always performed the same way, so i avoid using urandom. Why it is faster is perhaps on your laptop seems like a bug to me - since it is surprising since on hardware like m2.minio.io is slow as well and consistent.

minio@minio2:~$ time dd if=/dev/urandom of=bigfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 5.11967 s, 13.3 MB/s

real	0m5.138s
user	0m0.000s
sys	0m4.744s

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see minio2 uses linux 4.4.0-93-generic wheres my laptop's linux is 4.10.0-35-generic. Similarly performance difference of dd and shred in minio2 is like below

minio@minio2:/tmp$ time dd if=/dev/urandom of=myfile bs=1M count=65
65+0 records in
65+0 records out
68157440 bytes (68 MB, 65 MiB) copied, 4.79613 s, 14.2 MB/s

real    0m4.798s
user    0m0.000s
sys     0m4.796s
minio@minio2:/tmp$ time shred -s 65M -> myfile

real    0m2.248s
user    0m0.208s
sys     0m0.096s

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@balamurugana as explain above in PR description dd was changed due to this

$ sudo dd if=/dev/urandom of=datafile-65-MB bs=65M count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0.252857 s, 133 MB/s

we could have changed smaller blocks with higher count, say bs=1M count=65 with dd, but shred appeared to be faster. Now I see dd is faster on your system. so how do we conclude this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I analyzed minio-go problem and found a size check failed due to input file is not sized to 65MB due to buggy dd

After discussion, this PR can fix the problem by using shred command. You could remove dd usage and use shred -n 1 instead in this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated the PR @balamurugana please check

Copy link
Member

@balamurugana balamurugana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor comments

@@ -32,7 +32,7 @@ data_file_map["datafile-65-MB"]="65M"
mkdir -p "$MINT_DATA_DIR"
for filename in "${!data_file_map[@]}"; do
echo "creating $MINT_DATA_DIR/$filename"
if ! dd if=/dev/urandom of="$MINT_DATA_DIR/$filename" bs="${data_file_map[$filename]}" count=1 >/dev/null 2>&1; then
if ! shred -n 1 -s "${data_file_map[$filename]}" -> "$MINT_DATA_DIR/$filename" 2>&1; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You would redirect the output to /dev/null

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@balamurugana that doesn't work

$ shred -n 1 -s 65M -> data >/dev/null
$ ls -la
total 56
drwxr-xr-x  2 nitish nitish  4096 Sep 26 08:45 .
drwxrwxrwt 22 root   root   49152 Sep 26 08:45 ..
-rw-r--r--  1 nitish nitish     0 Sep 26 08:45 data

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You would need to do shred -n 1 -s "${data_file_map[$filename]}" - 1>"$MINT_DATA_DIR/$filename" 2>/dev/null

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@@ -34,4 +34,5 @@ if [ "$ENABLE_HTTPS" -eq 1 ]; then
fi

java -cp "$MINIO_JAVA_PATH/minio-${MINIO_JAVA_VERSION}-all.jar:." FunctionalTest \
"$endpoint" "$ACCESS_KEY" "$SECRET_KEY" "$SERVER_REGION" 1>"$output_log_file" 2>"$error_log_file"
"$endpoint" "$ACCESS_KEY" "$SECRET_KEY" "$SERVER_REGION" 1>>"$output_log_file" 2>"$error_log_file"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unwanted new line

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

@@ -34,4 +34,4 @@ if [ "$ENABLE_HTTPS" -eq 1 ]; then
fi

java -cp "$MINIO_JAVA_PATH/minio-${MINIO_JAVA_VERSION}-all.jar:." FunctionalTest \
"$endpoint" "$ACCESS_KEY" "$SECRET_KEY" "$SERVER_REGION" 1>"$output_log_file" 2>"$error_log_file"
"$endpoint" "$ACCESS_KEY" "$SECRET_KEY" "$SERVER_REGION" 1>>"$output_log_file" 2>"$error_log_file"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep the indentation for readability

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Also includes following fixes:

* Add newline for minio-js logger for ease of reading
* Fix datafile creation as blocks greater than 34MB are not supported.
Use shred to create data files as it is faster and avoids the block
size issue with dd command
* Escape mc logs before printing as JSON

Fixes minio#35
@nitisht nitisht merged commit cf2b2f0 into minio:master Sep 26, 2017
@nitisht nitisht deleted the mint-json branch September 26, 2017 05:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Mint for release readiness
4 participants