-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-28877][PYSPARK][test-hadoop3.2][test-java11] Make jaxb-runtime compile-time dependency #25587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This is nice!! |
HyukjinKwon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if tests pass
|
retest this please |
|
Test build #109762 has finished for PR 25587 at commit
|
|
retest this please |
|
Thank you for review and approval and retriggering, @HyukjinKwon . |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I think that's probably the right answer here. We need to bundle some (possibly many) JAXB implementations for JDK 11 and it shouldn't hurt JDK 8. We might need to slip in an extra entry in one of the license files, otherwise can't think of anything else.
EDIT: No it's already there. It's already a runtime dependency. Hm, wait, then why isn't it present for the tests already? we should already be bundling this. I somehow think this wasn't the issue, it was already fine but the issue is in how Pyspark tests form the classpath from the assembly jars/ dir. Let's take a look.
|
Thank you for review, @srowen . However, our BEFORE THIS PR |
|
Yeah if it causes them to be in the assembly, then it's the right fix. It sort of should already be there, but the rules for transitive dependency resolution are complex. Making it compile-scope isn't strictly correct, but if it causes the resolution to work out, seems fine, and does little harm (we won't be writing code directly depending on it). |
|
Ah, |
|
I bet you will find it does not change the transitive dependencies as reported by Maven or SBT - it's already a runtime dependency. This was the reason to be suspicious that it's not the fix. But the fact that it's not in the assembly is the issue, and the reasons are arcane (maybe even a more general problem) about how the assembly plugin treats transitive dependencies of various scopes. We need not get into that here; if it resolves the issue it's OK as a patch. |
|
I updated the PR description. |
|
I'll take a look once more. |
|
Test build #109764 has finished for PR 25587 at commit
|
|
Test build #109768 has finished for PR 25587 at commit
|
|
Technically, the UT failures here are irrelevant to this PR. Especially, last two failures seems to be due to the new test suite flakiness. (#25567 (comment)) |
|
Test build #4842 has finished for PR 25587 at commit
|
|
This PR passed the Jenkins with JDK8 building and JDK11 testing. |
|
After this PR, we can use Merged to master. Thank you all. |
|
This is nice! |
|
666 |
What changes were proposed in this pull request?
mllibhasjaxb-runtime-2.3.2as a runtime dependency. This PR makes it as a compile-time dependency. This doesn't change our dependency manifest andLICENSEs. Instead, this will add the following three jars into our pre-built artifacts.Why are the changes needed?
We need to use the followings.
com.sun.xml.internal.bind.v2.ContextFactorycom.sun.xml.bind.v2.ContextFactorycom.sun.xml.bind.v2.ContextFactoryis insidejaxb-runtime-2.3.2.Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the Jenkins with
test-java11.For manual testing, do the following with JDK11.