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]

Reply via email to