-
Notifications
You must be signed in to change notification settings - Fork 972
[KYUUBI #1948] Upgrade thrift version to 0.16.0 #1953
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
1ef8da0 to
e93ad6b
Compare
|
We need to shade thrift libs into kyuubi-spark-sql-engine because Spark bundles old thrift libs in binary release. |
49d08e1 to
2c58141
Compare
47696f7 to
40ffacc
Compare
4300576 to
12ef0c1
Compare
12ef0c1 to
803e270
Compare
|
|
||
| test("obtain hive delegation token") { | ||
| // Ignore the test because LocalMetaServer can not work with Thrift 0.16.0. | ||
| ignore("obtain hive delegation token") { |
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.
cc @zhouyifan279
We can not start HiveMetastore using thrift 0.16.0, because the Interface method signature changed, the class is not compatible.
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.
Shall we govern these ignored tests with flaky tests together? cc @yanghua
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.
I will create a PR later to fix it.
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.
Shall we govern these ignored tests with flaky tests together? cc @yanghua
I suggest we split them into two categories. The ignored tests may have other reasons not only flaky tests?
kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TFilterTransport.java
Show resolved
Hide resolved
|
Summary of this PR,
|
Codecov Report
@@ Coverage Diff @@
## master #1953 +/- ##
============================================
- Coverage 60.89% 60.35% -0.54%
Complexity 69 69
============================================
Files 302 305 +3
Lines 14797 14859 +62
Branches 1915 1927 +12
============================================
- Hits 9010 8968 -42
- Misses 5020 5111 +91
- Partials 767 780 +13
Continue to review full report at Codecov.
|
|
Thanks for your summary, @pan3793
BTW, please change |
|
the test failure here seems relevant, can we check on that? @SteNicholas |
|
Updated PR description, also added Next Steps @yaooqinn |
yaooqinn
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.
Excellent work @SteNicholas
+1, LGTM
|
thanks, merged to master |
Why are the changes needed?
Upgrade libthrift to 0.16.0 due to CVE-2020-13949 and the coming upstream change of Spark apache/spark#34362
What changed in this PR?
Upgrade libthrift to 0.16.0
Shade and relocate
thriftandhive-service-rpcclasses inkyuubi-spark-engine, it's necessary to avoide conflicting with old thrift libs bundled in Spark binary releases.Due to thrift change the method signature, the subclasses those interfaces in Kyuubi also need to modify to pass compile.
We rely on Hive 2.3.9 jars in some components, e.g.
kyuubi-hive-jdbc,LocalMetaServerinkyuubi-servertest classes.Some classes in Hive jars compiled against old thrift interfaces which are not compatible with thrift 0.16.0, it causes runtime link error, we found the following classes which breaks the test and copied them with necessary modification to make it work with thrift 0.16.0.
Next Steps, I think it's worth to do in separated PRs.
HiveDelegationTokenProviderSuite, one approach is use an isolate classloader to load HMS classes and thrift 0.9.3 classes from Maven, this approach can also be used for the planed Zoopkeeper upgrading to help us verficating the compatibility of Zookeeper Server 3.4.x.kyuubi-hive-jdbcto make it decouple with Hive jars, because there maybe other places which may not work with thrift 0.16.0 but the UTs does not cover.How was this patch tested?
Add some test cases that check the changes thoroughly including negative and positive cases if possible
Add screenshots for manual tests if appropriate
Run test locally before make a pull request