yihua opened a new issue, #19829:
URL: https://github.com/apache/hudi/issues/19829

   `HiveTestService` asks for two things no single libthrift version provides.
   
   It imports `org.apache.thrift.transport.TFramedTransport`, which exists only 
below 0.14 (0.14 moved it to `transport.layered`). Its inner 
`TServerSocketKeepAlive` overrides `TServerTransport.accept()`, which is 
`final` below 0.14 and only overridable from 0.14 on. There is no method 
overridable in both generations either: `TServerSocket.acceptImpl()` exists 
only below 0.14, `accept()` only from 0.14.
   
   The build does not hit this because it compiles and runs these tests against 
the full `hive-exec`, which bundles a 0.14-era thrift transport package at the 
plain path. Anything consuming the `hudi-hive-sync` tests jar on a classpath 
that uses `hive-exec` with the `core` classifier gets no thrift from Hive at 
all, so `TServerTransport` resolves from libthrift and the class fails 
verification, or fails to find `TFramedTransport$Factory` once libthrift is 
raised to 0.14.
   
   The test dependency can move to the existing `hive.libthrift.version` 
property, which already models the thrift the Hive client is built against, and 
the import can point at the package 0.14 moved it to.
   


-- 
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