feat(io): refresh vended storage credentials before they expire - #892
Open
plusplusjiajia wants to merge 1 commit into
Open
feat(io): refresh vended storage credentials before they expire#892plusplusjiajia wants to merge 1 commit into
plusplusjiajia wants to merge 1 commit into
Conversation
plusplusjiajia
force-pushed
the
feat-vended-credential-refresh
branch
2 times, most recently
from
August 19, 2026 06:45
f3d4f82 to
408c40f
Compare
plusplusjiajia
force-pushed
the
feat-vended-credential-refresh
branch
from
August 19, 2026 07:37
408c40f to
d92ef4d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Vended storage credentials are short-lived, so a long scan or a reused table eventually fails on expired ones. This fills the
TODO(gangwu)left inarrow_s3_file_io.ccby #719.How
ArrowS3FileIOreadss3.session-token-expires-at-msand, five minutes before the earliest applied credential expires, calls aStorageCredentialRefresherand rebuilds its per-prefix delegates.RestCatalogsupplies that callback from theLoadCredentialsendpoint when the server advertises it;ResolvingFileIOpasses it down. Aligned with Java's
VendedCredentialsProvider: same lead time, same lazy refresh rather than a background thread, same refusal of an empty credential list.SupportsStorageCredentials::credentials()now returns by value: a refresh can replace the vector concurrently. All in-tree callers are tests.