drewfarris commented on PR #81: URL: https://github.com/apache/accumulo-proxy/pull/81#issuecomment-1681279835
Accumulo 2.1.x only supports the thrift `TCompactProtocol` and no longer supports other thrift protocols. The failing integration tests attempt to validate the operation of thrift protocols that are no longer supported. So to trace this in depth, you can see that looking at the Accumulo 2.1 branch, [`ThriftUtil` is hardcoded to create a thrift server](https://github.com/apache/accumulo/blob/38c261d1236f118ffc2c6eebc505f5daf12bf0e2/core/src/main/java/org/apache/accumulo/core/rpc/ThriftUtil.java#L65) uses the `TraceProtocolFactory`. [TraceProtocolFactory is a subclass of `TCompactProtocol.Factory`] (https://github.com/apache/accumulo/blob/38c261d1236f118ffc2c6eebc505f5daf12bf0e2/core/src/main/java/org/apache/accumulo/core/rpc/TraceProtocolFactory.java#L35) and ultimately uses the `TCompactProtocol` under the hood. This means that clients will only be able to communicate with the Proxy using the TCompactProtocol. As of Accumulo 2.1.x [`TServerUtils.startTServer` no longer accepts a `protocolFactory` parameter](https://github.com/apache/accumulo/blob/64916fb724ca7cd0fa580bf73fcbd49e01af6a9e/server/base/src/main/java/org/apache/accumulo/server/rpc/TServerUtils.java#L575), so the code in `o.a.accumulo.proxy.Proxy` has no way of asking that a different `protocolFactory` be used. Commit d3a3277 cleaned up `TServerUtils` to obtain the protocol factory from `ThriftUtil`. However, the integration tests for the the Accumulo Proxy test a variety of protocols, from `TCompactProtocol` to `TJsonPrococol` and `TBinaryProtocol`. I observed that the `TCompactProtocol` test completes just fine, whereas others fail because the server side of the AccumuloProxy always uses `TCompactProtcol` regardless of the test configuration. So, we could deleting the IT's for the other protocols, `ProxyDurabilityTest` also will need to be updated to use `TCompactProtocol`. -- 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]
