Hello, For additional context, the unit tests in Hive are using MiniDFSCluster. I suspect that is what is loading the ProtobufRpcEngine2 class, while the local code under test uses ProtobufRpcEngine.
Is there a way to load MiniDFSCluster in its own class loader? Thanks. On Wed, Dec 9, 2020 at 2:34 PM David <dam6...@gmail.com> wrote: > Hello Gang, > > There seems to be a new RpcEngine created as part of Hadoop 3.3. I'm > trying to upgrade Hive to use Hadoop 3.3 and it uses the RpcEngine > mechanism. However, tests are failing for Hive complaining about: > > "ReRegistration of rpcKind" > > I believe this is because both classes register, statically, as > RPC.RpcKind.RPC_PROTOCOL_BUFFER and interfere. This has broken backwards > compatibility. Is it intended for the two engines to be prohibited from > running at the same time? What is the workaround to allow for third-party > libraries to use ProtobufRpcEngine (protobuf 2)? > > > https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java > > > https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java > > Thanks. >