George Jahad created HDDS-5458:
----------------------------------
Summary: s3_compatbility_check.sh/aws compatibility issues
Key: HDDS-5458
URL: https://issues.apache.org/jira/browse/HDDS-5458
Project: Apache Ozone
Issue Type: Bug
Components: S3, test
Reporter: George Jahad
*Summary*:
The smoketest/s3/s3_compatbility_check.sh script was incomplete. I added the
rest of the robot scripts and got 4 failures.
*Details*:
I added the following smoketest/s3 robot files to the s3 compatibility test
script:
awss3.robot
bucketcreate.robot
bucketdelete.robot
buckethead.robot
bucketlist.robot
The only s3 robot files I didn't include are:
__init__.robot
commonawslib.robot
boto3.robot
I get the following failures from the new files. They all fail because our
error messages differ from aws.
*1. "Create bucket with invalid bucket name"*
It expects: "InvalidBucketName" but gets:
_"An error occurred (BucketAlreadyExists) when calling the CreateBucket
operation: The requested bucket name is not available. The bucket namespace is
shared by all users of the system. Please select a different name and try
again."_
It currently uses "bucket_1" as the bad bucket name. "Changing that name to
BadBucketName_1", causes it to pass.
It seems even though the "bucket_1" name is invalid, it collides with some
existing name first, and generates a different error.
I'm thinking the bad bucket name should be randomized.
*2. "Delete non-existent bucket"*
It expects: "NoSuchBucket" but gets:
_"An error occurred (AccessDenied) when calling the DeleteBucket operation:
Access Denied"_
So the error message here is different than the one returned by our s3gateway.
Do we want to fix the gateway or change the test?
*3. "Head Bucket not existent"*
It is expecting a 404 exit and a "Not Found" message. Instead it gets a 400
exit code and this message:
_"An error occurred (400) when calling the HeadBucket operation: Bad Request"_
Again, do we fix the gateway or change the test?
*4. Test Multipart Upload Put With Copy and range with IfModifiedSince*
Without any of my changes the current s3 script fails on this test, where a
file is uploaded and then tested with "IfModifiedSince".
The original file hasn't been modified, so the test is expected to fail. But on
AWS, it passes. The problem is that the test sets the "IfModifiedSince" is in
the future.
In that case AWS ignores the Precondition and does the upload even though it
hasn't been modified since.
This is a known issue with how the API works on AWS:
https://forums.aws.amazon.com/thread.jspa?threadID=88985
Currently the test sets the "IfModifiedSince" time to a full day in the future.
To fix it, we could modify the test to be a few seconds after the creation
time, and pause till that time has passed.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]