-
Notifications
You must be signed in to change notification settings - Fork 414
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
AWS credential load error #2893
Comments
You gotta give more info on the actual type of credentials you are passing.. |
Yes please more details! I did some refactoring around AWS credential loading in 0.20.0 to fix a number of long-stanging bugs and utilize the AWS SDK for Rust more effectively, I'm quite curious what the problem here might me 😄 |
Sorry I really couldn't provide anything more - I never need to pass any credentials because I only write to the same AWS account as the ECS tasks that the script runs on. |
Some other info that may help:
|
I'm facing a similar issue also running on ECS. Writing to S3 with the DynamoDB locking provider. I see this from the logs:
|
Also hit this today while running 0.20.0 on ECS. Specifically "OSError: Operation not supported: an error occurred while loading credentials" Code that triggers the error:
here's the ECS task role permissions s3 (purposefully broad for now):
dynamodb:
passing these storage_options in prod.
Note that i don't hit this in dev, using storage_options:
UPDATE: Confirmed still an issue in 0.20.1, and no issue in 0.19.2 |
I am experiencing similar issues with Delta Lake when upgrading from version 0.19.2 to 0.20.0 or higher. The configuration that worked perfectly in version 0.19.2 now fails with the following error messages: Error Messages
Below is the configuration that works for version 0.19.2 but fails for version 0.20.0 and above:
Steps to Reproduce Actual Behavior Additional Information UpdatedWorkaround:
After setting these environment variables, I can successfully use Delta Lake version 0.20.0 and 0.20.1 without encountering the previous errors. |
Thanks for the thorough report @hbaslana ! I believe that we may have a fix for this coming from #2924 which I merged earlier today. If you're up for re-doing your test with this Python wheel from CI: deltalake-0.20.2%2Bf9436cba-cp38-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl that would be very helpful (you can also just build |
Thanks for the update. However, the same behavior persists. I found out that when I supply AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY through environment variables, it successfully writes, albeit with warnings. It seems to get other information, such as ENDPOINT_URL, from storage_options, but the key/secret is not loading. The warning disappears when the environment variable is provided:
|
Running through a manual test case with
This is with {'access_key_id': 'deltalake', 'secret_access_key': 'weloverust', 'endpoint_url': 'https://localhost:4566', 'region': 'us-east-1', 'bucket_name': 'MY_BUCKET', 'default_region': 'us-east-1', 'allow_http': 'true', 'aws_s3_allow_unsafe_rename': 'true', 'copy_if_not_exists': 'header: cf-copy-destination-if-none-match: *', 'access_key': 'deltalake'} which is running against our localstack defined in I'm curious if you're seeing something similar @hbaslana , either way, I'm going to see if I can nail down where this hiccup might be happening in the |
This change addresses some of the problems tacked onto delta-io#2893 but does not address the concern with ECS specifically. It does however improve the handling of `storage_options` since the improved credential provider code was introduced
This error from @whistlebee is interesting!
The endpoint that ECS is configured to use is rate-limiting (HTTP 429) the requests for credentials, which is very interesting because the code that is doing that is ... provided by AWS 😆 For this issue and the details provided by @jcran I am going to have to do some hacking to get a test set up working correctly since we're not regularly able to run CI with ECS-based containers 🤔 🕵️ That said, I have a build brewing for @hbaslana to test which I believe addresses their issue (see also #2931) |
This change addresses some of the problems tacked onto #2893 but does not address the concern with ECS specifically. It does however improve the handling of `storage_options` since the improved credential provider code was introduced
This change addresses some of the problems tacked onto #2893 but does not address the concern with ECS specifically. It does however improve the handling of `storage_options` since the improved credential provider code was introduced
Great work!! @rtyler Latest #2931 resolved write issue, now it keeps credentials from storage options however still not getting region, what's the correct way to provide region through storage_options ? maybe it is key issue similar to credentials. |
what about setting region similar to your approach
|
Environment
Delta-rs version: 0.20.0
Binding: Python
Environment:
Bug
What happened: Calling
DeltaTable(path)
results inOSError: Operation not supported: an error occurred while loading credentials
What you expected to happen: The same code runs without problems in 0.19.2
How to reproduce it:
More details:
File "/usr/local/lib/python3.12/site-packages/deltalake/table.py", line 412, in init
self._table = RawDeltaTable(
^^^^^^^^^^^^^^
The text was updated successfully, but these errors were encountered: