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
``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 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
## How was this patch tested?
All Existing UT must pass
Closes #24126 from ajithme/driverlock.
Authored-by: Ajith <> Signed-off-by: Sean Owen
(cherry picked from commit b61dce23d2ee7ca95770bc7c390029aae8c65f7e)
Signed-off-by: Sean Owen <>
(commit: 4a54107811f59ff345dec8729d282c3fa3ef94a2)
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/
The file was removedcore/src/main/scala/org/apache/spark/util/MutableURLClassLoader.scala
The file was removedcore/src/main/scala/org/apache/spark/util/ParentClassLoader.scala
The file was addedsql/core/src/main/java/org/apache/spark/sql/internal/
The file was addedcore/src/main/java/org/apache/spark/util/
The file was addedcore/src/main/java/org/apache/spark/util/