Hi all,

I'd like to draw attention to HADOOP-19833 [1], which has an open PR [2] that's 
been waiting for committer review since early March.

The bug: fs.s3a.classloader.isolation=false has no effect because 
S3AUtils.getInstanceFromReflection() hardcodes S3AUtils.class.getClassLoader() 
instead of using the Configuration's classloader set by 
maybeIsolateClassloader(). This means custom credential providers loaded via 
application classpaths are invisible to S3A, resulting in 
ClassNotFoundException.

This is a regression introduced in 3.4.x during the SDK v1->v2 migration and is 
actively impacting production workloads (Spark/Glue jobs using custom AWS 
credential providers).

The fix is straightforward -- use conf.getClassLoader() in 
getInstanceFromReflection() instead of the hardcoded S3AUtils classloader. The 
PR includes a unit test.

Would a committer be able to take a look? Happy to help with any additional 
testing or review needed to get this merged.

[1] https://issues.apache.org/jira/browse/HADOOP-19833
[2] https://github.com/apache/hadoop/pull/8303

Thanks,
Jayesh Lalwani

Reply via email to