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

services/s3: Integration test fails when using the latest MinIO #860

Closed
JinnyYi opened this issue Sep 29, 2021 · 6 comments
Closed

services/s3: Integration test fails when using the latest MinIO #860

JinnyYi opened this issue Sep 29, 2021 · 6 comments

Comments

@JinnyYi
Copy link
Contributor

JinnyYi commented Sep 29, 2021

Excepted Behavior

go-service-s3 should compatible with MinIO and pass integration test with MinIO.

Current Behavior

  • Integration test passed when using minio RELEASE.2021-06-17T00-10-46Z
  • Decode REST XML response failed when using MinIO Console
    When Read a file     storager.go:55: write: Storager s3 {Name: xxxxx, WorkDir: /dc2c38b3-2de2-413c-8399-92cb1ba879e8/}, [3dd549ed-b614-45b7-9848-d33fdac98238]: unexpected: SerializationError: failed to decode REST XML response
                  status code: 200, request id:
          caused by: XML syntax error on line 1: element <link> closed by </head>

Steps to Reproduce

Run integration test for go-service-s3 with the following config:

STORAGE_S3_INTEGRATION_TEST=on
STORAGE_S3_CREDENTIAL=hmac:minioadmin:minioadmin
STORAGE_S3_ENDPOINT=https:play.min.io:9443
STORAGE_S3_NAME=<bucketname>
STORAGE_S3_LOCATION=local

Also we need to set endpoint for initialization:

pairs.WithEndpoint("https:play.min.io:9443")

Environment

  • MinIO Console
@Xuanwo
Copy link
Contributor

Xuanwo commented Sep 29, 2021

So nice a bug report.

@Xuanwo
Copy link
Contributor

Xuanwo commented Sep 30, 2021

I believe we are calling the minio console instead of minio server. Does the minio endpoint change?

@JinnyYi
Copy link
Contributor Author

JinnyYi commented Sep 30, 2021

I believe we are calling the minio console instead of minio server. Does the minio endpoint change?

I can't access minio server locally. I'll rebuild minio server later and update the test result.

@Xuanwo
Copy link
Contributor

Xuanwo commented Sep 30, 2021

OK, let's figure out the root cause in next cycle maybe.

@Xuanwo Xuanwo transferred this issue from beyondstorage/go-service-s3 Oct 15, 2021
@Xuanwo Xuanwo changed the title Integration test fails when using the latest MinIO services/s3: Integration test fails when using the latest MinIO Oct 15, 2021
@JinnyYi
Copy link
Contributor Author

JinnyYi commented Oct 20, 2021

XML syntax error is indeed returned by minio console. When I tested with the correct minio server ip, most of the test cases passed, except for the following cases:

  • When using absolute path:

    • Error info:
     Object name invalid: jl-test/17d1b6f8-0713-4c6f-8ac9-d2570fb9345a//17d1b6f8-0713-4c6f-8ac9-d2570fb9345a/a6205dcb-313a-4056-bb5c-6f7ef08883d1 (cmd.ObjectNameInvalid)
    
    • Causes: getAbsPath() does not take into account the absolute path of the input
  • When Delete with multipart id:

    • Error info: NoSuchUpload returned by the second delete operation
    • Cause: Seems that AbortMultipartUpload is non-idempotent.
  • When List with part type types.ListModePart

@Xuanwo
Copy link
Contributor

Xuanwo commented Oct 20, 2021

It looks like we need to solve them in the services/s3. Can you split them into different issues so that we can get the community involved?

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

No branches or pull requests

2 participants