SuccessChanges

Summary

  1. [SPARK-26961][CORE] Enable parallel classloading capability (commit: 4a54107811f59ff345dec8729d282c3fa3ef94a2) (details)
Commit 4a54107811f59ff345dec8729d282c3fa3ef94a2 by sean.owen
[SPARK-26961][CORE] Enable parallel classloading capability
## What changes were proposed in this pull request?
As per
https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html
``Class loaders that support concurrent loading of classes are known as
parallel capable class loaders and are required to register themselves
at their class initialization time by invoking the
ClassLoader.registerAsParallelCapable method. Note that the ClassLoader
class is registered as parallel capable by default. However, its
subclasses still need to register themselves if they are parallel
capable. ``
i.e we can have finer class loading locks by registering classloaders as
parallel capable.  (Refer to deadlock due to macro lock
https://issues.apache.org/jira/browse/SPARK-26961). All the classloaders
we have are wrapper of URLClassLoader which by itself is parallel
capable. But this cannot be achieved by scala code due to static
registration Refer https://github.com/scala/bug/issues/11429
## How was this patch tested?
All Existing UT must pass
Closes #24126 from ajithme/driverlock.
Authored-by: Ajith <ajith2489@gmail.com> Signed-off-by: Sean Owen
<sean.owen@databricks.com>
(cherry picked from commit b61dce23d2ee7ca95770bc7c390029aae8c65f7e)
Signed-off-by: Sean Owen <sean.owen@databricks.com>
(commit: 4a54107811f59ff345dec8729d282c3fa3ef94a2)
The file was addedcore/src/main/java/org/apache/spark/util/ParentClassLoader.java
The file was addedsql/core/src/main/java/org/apache/spark/sql/internal/NonClosableMutableURLClassLoader.java
The file was modifiedsql/core/src/main/scala/org/apache/spark/sql/internal/SharedState.scala (diff)
The file was addedcore/src/main/java/org/apache/spark/util/MutableURLClassLoader.java
The file was removedcore/src/main/scala/org/apache/spark/util/ParentClassLoader.scala
The file was removedcore/src/main/scala/org/apache/spark/util/MutableURLClassLoader.scala
The file was addedcore/src/main/java/org/apache/spark/util/ChildFirstURLClassLoader.java