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

storage: The S3-compatible API of Google Cloud Storage does not support DeleteObjects #50918

Open
kennytm opened this issue Feb 2, 2024 · 4 comments
Labels
component/br This issue is related to BR of TiDB. severity/moderate type/bug The issue is confirmed as a bug.

Comments

@kennytm
Copy link
Contributor

kennytm commented Feb 2, 2024

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

  1. Create a GCS bucket.
  2. Create a TiCDC v7.6 changefeed with redo-log enabled (setting consistent.level = 'eventual'), and set the storage to s3://bucket/?endpoint=http://storage.googleapis.com (thus accessing GCS through their S3-compatible XML API).
  3. Wait for a while.

2. What did you expect to see? (Required)

No error.

3. What did you see instead (Required)

Changefeed stopped because of incompatible API:

[2024/02/01 00:00:00.000 +00:00] [WARN] [meta_manager.go:159] ["redo: init redo meta fail"] [namespace=default] [changefeed=«redacted»] [error="[CDC:ErrS3StorageAPI]external storage api: NotImplemented: A header or query you provided requested a function that is not implemented.\n\tstatus code: 400, request id: , host id: "]

4. What is your TiDB version? (Required)

v7.6.0

@kennytm kennytm added type/bug The issue is confirmed as a bug. component/br This issue is related to BR of TiDB. labels Feb 2, 2024
@kennytm
Copy link
Contributor Author

kennytm commented Feb 2, 2024

The GCS JSON API (gcs://) uses an entirely different approach for batch delete (https://cloud.google.com/storage/docs/batch), so I believe there is no plan for Google to support DeleteObjects in the XML API.

For this issue we either

  • declare using s3:// for GCS is bad, users should just use gcs://, and close this issue, or
  • do support s3:// for GCS, make DeleteFiles() detect the HTTP 400, and fallback to use a loop

@BornChanger
Copy link
Contributor

BornChanger commented Mar 27, 2024

@kennytm can you please open the issue to tiflow repo instead? cc @flowbehappy

@BornChanger
Copy link
Contributor

/remove-component br

@ti-chi-bot ti-chi-bot bot removed the component/br This issue is related to BR of TiDB. label Mar 27, 2024
@kennytm
Copy link
Contributor Author

kennytm commented Mar 27, 2024

@BornChanger I have explained why the issue is filed here in the first line in #50918 (comment). I'm keeping the labels unless there is a dedicated label for the external-storage component.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/br This issue is related to BR of TiDB. severity/moderate type/bug The issue is confirmed as a bug.
Projects
None yet
Development

No branches or pull requests

3 participants