PluginManager has fragile dependency on singleton and system properties
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 189
Description
There's an issue with how the PluginManager (the only class using PluginClassLoader) gets initialized. It has a static PluginManager variable that uses system properties to locate classes to load, which is fragile as code that sets up this system property must run before the PluginManager class gets loaded. One example of this is `HadoopSegmentCreationMapper`.
In general having a singleton is problematic in an environment like Hadoop/Spark/Flink, where multiple task threads are running in the same JVM.
Contributor guide
Research direction
Start by reading PluginManager and PluginClassLoader, then inspect how HadoopSegmentCreationMapper sets the relevant system property before PluginManager loads. Trace initialization in Hadoop, Spark, and Flink-style multi-task JVM usage. Done means removing the fragile singleton and initialization-order dependency while preserving plugin loading for these environments.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100