xkrogen opened a new pull request, #40144:
URL: https://github.com/apache/spark/pull/40144

   ### What changes were proposed in this pull request?
   When using the 'builtin' Hive version for the Hive metadata client, do not 
create a separate classloader, and rather continue to use the overall 
user/application classloader (regardless of Java version). This standardizes 
the behavior for all Java versions with that of Java 9+. See SPARK-42539 for 
more details on why this approach was chosen.
   
   ### Why are the changes needed?
   Please see a much more detailed description in SPARK-42539. The tl;dr is 
that user-provided JARs (such as `hive-exec-2.3.8.jar`) take precedence over 
Spark/system JARs when constructing the classloader used by 
`IsolatedClientLoader` on Java 8 in 'builtin' mode, which can cause unexpected 
behavior and/or breakages. This violates the expectation that, unless 
user-first classloader mode is used, Spark JARs should be prioritized over user 
JARs.
   
   ### Does this PR introduce _any_ user-facing change?
   No, except to protect Spark itself from potentially being broken by bad user 
JARs.
   
   ### How was this patch tested?
   This includes a new unit test in `HiveUtilsSuite` which demonstrates the 
issue and shows that this approach resolves it. It has also been tested on a 
live cluster running Java 8 and Hive communication functionality continues to 
work as expected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to