voonhous commented on code in PR #19682:
URL: https://github.com/apache/hudi/pull/19682#discussion_r3821167583


##########
pom.xml:
##########
@@ -128,6 +128,9 @@
     <hadoop.version>2.10.2</hadoop.version>
     <hive.groupid>org.apache.hive</hive.groupid>
     <hive.version>2.3.10</hive.version>
+    <!-- The libthrift the Hive client jars above are compiled against (Hive 
2.3.10 bumped
+         it for CVE-2020-13949); keep in lockstep with hive.version. See 
#19680. -->
+    <hive.libthrift.version>0.14.1</hive.libthrift.version>

Review Comment:
   Verified against the published spark-parent poms: 4.0.2, 4.1.1 and 4.2.0 all 
pin libthrift 0.16.0 alongside the same Hive 2.3.10 client, so the direct pin 
was indeed downgrading Spark 4 builds. Pushed d64e7419f4cd which overrides 
hive.libthrift.version to 0.16.0 in the spark4.0/4.1/4.2 profiles and keeps 
0.14.1 as the Spark 3 minimum.



##########
hudi-spark-datasource/hudi-spark/pom.xml:
##########
@@ -332,6 +332,31 @@
     </dependency>
 
     <!-- Hive -->
+    <!-- Direct pin: the Hive 2.3.10 client jars are compiled against 
libthrift 0.14.1
+         (HiveAuthUtils.getSocketTransport uses TConfiguration), but 
dependency mediation
+         otherwise picks 0.12.0 from spark-hive, which lacks that class and 
turns every
+         hive-jdbc connect into a NoClassDefFoundError. See #19680. -->
+    <dependency>
+      <groupId>org.apache.thrift</groupId>
+      <artifactId>libthrift</artifactId>
+      <version>${hive.libthrift.version}</version>

Review Comment:
   Addressed in d64e7419f4cd. The bundle now declares libthrift and libfb303 at 
${spark.bundle.hive.scope}, adds both to the shade include list, and relocates 
org.apache.thrift. and com.facebook.fb303. under the hive shade prefix. fb303 
has to come along because the generated hive-metastore client extends 
FacebookService.Client, so relocating thrift alone would have fixed the jdbc 
path while breaking metastore-mode sync under the profile. The default build is 
unchanged: provided scope keeps both jars out of the bundle and the relocations 
are no-ops with the empty prefix.
   
   hudi-utilities-bundle has the same gap under its own shade-hive profile; 
I'll handle that separately to keep this one scoped to hudi-spark and its 
bundle.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to