Skip to content
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

[SPARK-29483][BUILD] Bump Jackson to 2.10.0 #627

Merged
merged 1 commit into from
Dec 4, 2019
Merged

Conversation

mccheah
Copy link

@mccheah mccheah commented Nov 26, 2019

Release blog: https://medium.com/cowtowncoder/jackson-2-10-features-cd880674d8a2

Fixes the following CVE's:
https://www.cvedetails.com/cve/CVE-2019-16942/
https://www.cvedetails.com/cve/CVE-2019-16943/

Looking back, there were 3 major goals for this minor release:

  • Resolve the growing problem of “endless CVE patches”, a stream of fixes for reported CVEs related to “Polymorphic Deserialization” problem (described in “On Jackson CVEs… ”) that resulted in security tools forcing Jackson upgrades. 2.10 now includes “Safe Default Typing” that is hoped to resolve this problem.
  • Evolve 2.x API towards 3.0, based on changes that were done in master, within limits of 2.x API backwards-compatibility requirements.
  • Add JDK support for versions beyond Java 8: specifically add“module-info.class” for JDK9+, defining proper module definitions for Jackson components

Full changelog: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10

Improved Scala 2.13 support: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10#scala

Patches CVE's reported by the vulnerability scanner.

Authored-by: Fokko Driesprong [email protected]
Signed-off-by: Dongjoon Hyun [email protected]

Release blog: https://medium.com/cowtowncoder/jackson-2-10-features-cd880674d8a2

Fixes the following CVE's:
https://www.cvedetails.com/cve/CVE-2019-16942/
https://www.cvedetails.com/cve/CVE-2019-16943/

Looking back, there were 3 major goals for this minor release:

- Resolve the growing problem of “endless CVE patches”, a stream of fixes for reported CVEs related to “Polymorphic Deserialization” problem (described in “On Jackson CVEs… ”) that resulted in security tools forcing Jackson upgrades. 2.10 now includes “Safe Default Typing” that is hoped to resolve this problem.
- Evolve 2.x API towards 3.0, based on changes that were done in master, within limits of 2.x API backwards-compatibility requirements.
- Add JDK support for versions beyond Java 8: specifically add“module-info.class” for JDK9+, defining proper module definitions for Jackson components

Full changelog: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10

Improved Scala 2.13 support: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10#scala

Patches CVE's reported by the vulnerability scanner.

No

Ran `mvn clean install -DskipTests` locally.

Closes apache#26131 from Fokko/SPARK-29483.

Authored-by: Fokko Driesprong <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
@mccheah
Copy link
Author

mccheah commented Nov 26, 2019

Cherry-pick of apache#26131

@sjrand for consultation on whether or not this conflicts with our Hadoop's Jackson dependencies.

@robert3005 for review.

@mccheah mccheah requested review from robert3005 and sjrand November 26, 2019 21:06
@sjrand
Copy link

sjrand commented Nov 27, 2019

I'm not sure how we would determine whether there's a conflict with hadoop's jackson (2.7.8 in the version of hadoop we're using here). If I had to bet on it, I would say that there will be problems, just because it feels like there always are.

I would say just try it and see what breaks.

@sjrand
Copy link

sjrand commented Nov 27, 2019

Also, stuff like this is one of the many reasons we should do #583 -- I think the shaded client JAR in hadoop3 makes things like this much less scary.

@robert3005
Copy link

@sjrand I agree with you that those shaded clients are nice from dependencies pov since hadoop has some old crufty libraries. Fortunately jackson didn't change that much and there's pretty good code coverage in spark tests from previous 2.6 -> 2.9 bump. The only thing that really broke between jackson 2.9 and 2.10 is serialization of java duration (revertable via config) but those are never used here.

jackson-xc-1.9.13.jar
jakarta.activation-api-1.2.1.jar

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jakarta.activation-api-1.2.1.jar is a new version of javax.annotation-api-1.2.jar - we should tell maven to replace one with the other

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is probably benign but could lead to some head scratching later on

@@ -179,7 +179,7 @@
<!-- for now, not running scalafmt as part of default verify pipeline -->
<scalafmt.skip>true</scalafmt.skip>
<codehaus.jackson.version>1.9.13</codehaus.jackson.version>
<fasterxml.jackson.version>2.9.7</fasterxml.jackson.version>
<fasterxml.jackson.version>2.10.0</fasterxml.jackson.version>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be 2.10.1

@robert3005
Copy link

ping?

@robert3005
Copy link

👍 since this is a cherry-pick

@robert3005 robert3005 merged commit 0c2a7a3 into master Dec 4, 2019
@robert3005 robert3005 deleted the bump-jackson branch December 4, 2019 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants