ctubbsii opened a new pull request, #5721:
URL: https://github.com/apache/accumulo/pull/5721
Update SimpleThriftServiceRunner, used by ThriftBehaviorIT with a thrift
protocol that logs the order in which clients and servers call protocol read
and write message methods.
In testing, the logging shows the following ordering:
One-way methods:
client:writeMessageBegin
serverInput:readMessageBegin
client:writeMessageEnd
serverInput:readMessageEnd
Two-way (regular, including void) methods:
client:writeMessageBegin
serverInput:readMessageBegin
client:writeMessageEnd
serverInput:readMessageEnd
serverOutput:writeMessageBegin
client:readMessageBegin
serverOutput:writeMessageEnd
client:readMessageEnd
Note: the order of the End methods are soemtimes swapped. It seems that the
ordering of those is nondeterministic, which makes sense because they happen in
different processes, and neither side has anything more to do to read/write the
message, and can move on to the End methods independently.
The client uses its protocol instance to send RPC messages using the write
methods, and uses the read methods to receive server response messages.
The server can specify a separate input and output protocol, and uses the
read methods on the input protocol to receive client RPC messages, and uses the
output protocol to send response messages (either the result of an RPC
operation or a serialized exception). The output protocol is not used by thrift
oneway methods.
This commit also adds coverage of two-way void methods.
--
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]