[ 
https://issues.apache.org/jira/browse/IMPALA-13156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on IMPALA-13156 started by Laszlo Gaal.
--------------------------------------------
> S3 tests flaky: the Hadoop-AWS credential provider chain occasionally fails 
> to provide credentials for S3 access
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-13156
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13156
>             Project: IMPALA
>          Issue Type: Bug
>            Reporter: Laszlo Gaal
>            Assignee: Laszlo Gaal
>            Priority: Major
>
> During S3-based test runs executed on private infrastructure the default 
> Hadoop-AWS credential provider throws this error occasionally:
> {code}
> 2024-02-17T18:02:10,175  WARN [TThreadPoolServer WorkerProcess-22] 
> fs.FileSystem: Failed to initialize fileystem 
> s3a://****redacted****/test-warehouse/test_num_values_def_levels_mismatch_15b31ddb.db/too_many_def_levels:
>  java.nio.file.AccessDeniedException: ****redacted****: 
> org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials 
> provided by TemporaryAWSCredentialsProvider SimpleAWSCredentialsProvider 
> EnvironmentVariableCredentialsProvider IAMInstanceCredentialsProvider : 
> software.amazon.awssdk.core.exception.SdkClientException: Unable to load 
> credentials from system settings. Access key must be specified either via 
> environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
> 2024-02-17T18:02:10,175 ERROR [TThreadPoolServer WorkerProcess-22] 
> utils.MetaStoreUtils: Got exception: java.nio.file.AccessDeniedException 
> ****redacted****: org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No 
> AWS Credentials provided by TemporaryAWSCredentialsProvider 
> SimpleAWSCredentialsProvider EnvironmentVariableCredentialsProvider 
> IAMInstanceCredentialsProvider : 
> software.amazon.awssdk.core.exception.SdkClientException: Unable to load 
> credentials from system settings. Access key must be specified either via 
> environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
> java.nio.file.AccessDeniedException: ****redacted****: 
> org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials 
> provided by TemporaryAWSCredentialsProvider SimpleAWSCredentialsProvider 
> EnvironmentVariableCredentialsProvider IAMInstanceCredentialsProvider : 
> software.amazon.awssdk.core.exception.SdkClientException: Unable to load 
> credentials from system settings. Access key must be specified either via 
> environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
>         at 
> org.apache.hadoop.fs.s3a.AWSCredentialProviderList.maybeTranslateCredentialException(AWSCredentialProviderList.java:351)
>  ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:201) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.s3a.Invoker.once(Invoker.java:124) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.s3a.Invoker.lambda$retry$4(Invoker.java:376) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.Invoker.retryUntranslated(Invoker.java:468) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.s3a.Invoker.retry(Invoker.java:372) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.s3a.Invoker.retry(Invoker.java:347) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.lambda$verifyBucketExists$2(S3AFileSystem.java:972)
>  ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.statistics.impl.IOStatisticsBinding.invokeTrackingDuration(IOStatisticsBinding.java:543)
>  ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.statistics.impl.IOStatisticsBinding.lambda$trackDurationOfOperation$5(IOStatisticsBinding.java:524)
>  ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.statistics.impl.IOStatisticsBinding.trackDuration(IOStatisticsBinding.java:445)
>  ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.trackDurationAndSpan(S3AFileSystem.java:2748)
>  ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists(S3AFileSystem.java:970)
>  ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.doBucketProbing(S3AFileSystem.java:859)
>  ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:715) 
> ~[hadoop-aws-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3452) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:162) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3557) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3504) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:522) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at org.apache.hadoop.fs.Path.getFileSystem(Path.java:361) 
> ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.hive.metastore.Warehouse.getFs(Warehouse.java:124) 
> ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.Warehouse.getFs(Warehouse.java:132) 
> ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.Warehouse.isDir(Warehouse.java:860) 
> ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:2573)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_req(HiveMetaStore.java:2807)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) ~[?:?]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_261]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_261]
>         at 
> org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:160)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:121)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at com.sun.proxy.$Proxy30.create_table_req(Unknown Source) ~[?:?]
>         at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_req.getResult(ThriftHiveMetastore.java:19574)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_req.getResult(ThriftHiveMetastore.java:19553)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) 
> ~[libthrift-0.16.0.jar:0.16.0]
>         at 
> org.apache.hadoop.hive.metastore.TUGIBasedProcessor$1.run(TUGIBasedProcessor.java:111)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.hadoop.hive.metastore.TUGIBasedProcessor$1.run(TUGIBasedProcessor.java:107)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at java.security.AccessController.doPrivileged(Native Method) 
> ~[?:1.8.0_261]
>         at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_261]
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899)
>  ~[hadoop-common-3.1.1.7.2.18.0-620.jar:?]
>         at 
> org.apache.hadoop.hive.metastore.TUGIBasedProcessor.process(TUGIBasedProcessor.java:119)
>  ~[hive-standalone-metastore-3.1.3000.7.2.18.0-620.jar:3.1.3000.7.2.18.0-620]
>         at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
>  ~[libthrift-0.16.0.jar:0.16.0]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  ~[?:1.8.0_261]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  ~[?:1.8.0_261]
>         at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_261]
> {code}
> Occasionally means once or twice during a run taking about 8 hours. Also, 
> this does not happen during each run, but it is seen roughly once in every 3 
> or four attempts.
> These tests are run on EC2 VM instances, which have a specific IAM instance 
> role associated with them. The role allows them access to the designated test 
> buckets.
> For S3-based test runs, Impala is configured with the entry 
> {{s.s3a.aws.credentials.provider}} in {{core-site.xml}} left empty. This 
> leaves Hadoop-AWS to try all its credential providers in sequence, as 
> described in the Hadoop-AWS docs at 
> https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Simple_name.2Fsecret_credentials_with_SimpleAWSCredentialsProvider.2A



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to