-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
external_storage: fix GCS download error, support GCS endpoints, and refactoring (#7734) #7962
Conversation
Signed-off-by: sre-bot <sre-bot@pingcap.com>
/run-all-tests |
Signed-off-by: kennytm <kennytm@gmail.com>
/run-integration-ddl-test /run-integration-compatibility-test |
/merge |
Your auto merge job has been accepted, waiting for:
|
/run-all-tests |
/merge |
2 similar comments
/merge |
/merge |
/run-all-tests |
@sre-bot merge failed. |
Because of the flipped merge order, the essence of this cherry-pick has been contained in #7965 already. So this PR is much less urgent now 🤷 |
/merge |
/run-all-tests |
@sre-bot merge failed. |
/merge |
1 similar comment
/merge |
|
release-3.1 is no longer maintained, closing. |
cherry-pick #7734 to release-3.1
What problem does this PR solve?
Issue Number: close #7625
Problem Summary:
It was found that the GCS external_storage can only download 8 KB of data. This PR fixes the issue.
Additionally, tame_gcs hard-coded the request URLs, making the custom endpoint ineffective (EmbarkStudios/tame-gcs#21). This PR also workarounds the issue through URL rewriting.
What is changed and how it works?
What's Changed:
The problem is caused by using
block_on_external_io
recursively. This seems to break Tokio's executor and caused the download stream to end after a single call ofpoll_read
(where the buffer size is 8 KB).This PR fixes the problem by removing all nested
block_on_external_io
and replace them byasync fn
.Related changes
Check List
Tests
fake-gcs-server
works.Side effects
Release note
Restoring a backup archive from GCS now works.