Fix MDC compatibility issue with Spark when alluxio using reload4j #18737
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes are proposed in this pull request?
This PR addresses the
NoSuchFieldErrorrelated toorg.apache.log4j.MDCclass when integrating Alluxio with Spark 3. The issue occurs due to version conflicts between reload4j (used by Alluxio) and log4j (used by Spark).Problem: The reload4j dependency introduced in #18435 has compatibility issues with Spark 3, causing
NoSuchFieldErrorwhen using Spark.Related discussion: qos-ch/reload4j#41
Why are the changes needed?
The current reload4j causes compatibility issues when Alluxio is integrated with Spark:
slf4j-reload4j1.7.34 →reload4j1.2.18.3 → MDC.classtlmtype:ThreadLocalMaplog4j1.2.17 → MDC.classtlmtype:ObjectWhen using Spark , causing:
Therefore, we should exclude reload4j from the Alluxio client
Does this PR introduce any user facing changes?
No