-
Notifications
You must be signed in to change notification settings - Fork 796
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
Object store builder blocks on IO when building #6469
Comments
upon further testing this is cause by the feature |
issue created in reqwest seanmonstar/reqwest#2437 |
FWIW the various object store implementations are designed to be created once and then reused, otherwise things like connection pooling, etc... won't work correctly and you will pay for non-trivial setup costs such as loading certificates. Perhaps you could expand on the issue you are running into, it would be a very disruptive change to make the builders async, and I struggle to see what major issues performing some blocking IO on startup would cause |
Hi yeah I totally get both points: 1) store should be created once and cached, and 2) making builder async is going to be a major API change. Unfortunately :( our code makes a bit hard to do DI style constructions and we can't easily cache the store handle always. Also I guess another thing is having blocking IO here blocks our tokio worker and that causes some issues, albeit minor most of the time. |
There is some further context on this specific issue - #4870 TLDR you can opt-in to using webpki roots, or native-tls depending on your preferences.
I'd strongly encourage you to try, polars started reporting very peculiar issues a while back (pola-rs/polars#14384) that ended up being related to it spinning up hundreds of separate clients. In the end they used a global cache for this and the issues went away - pola-rs/polars#14598 |
I'm going to close this, as reading the linked upstream ticket I am not sure there is anything planned in this repository |
Describe the bug
Cloud based (tested for GCS) store builder blocks on file IO synchronously in
.build
. This happens by:object_store
->reqwest::ClientBuild::build
->rustls::load_native_cert
To Reproduce
Expected behavior
calling
build
should return a future and not blockAdditional context
I'll create a ticket in
reqwest
as well, but maybe we could capture the client build intokio::spawn_blocking
for the time being?The text was updated successfully, but these errors were encountered: