[ https://issues.apache.org/jira/browse/KUDU-2334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17258712#comment-17258712 ]
ASF subversion and git services commented on KUDU-2334: ------------------------------------------------------- Commit 5b2287aa3c1a2858f918aec25054eb9ce523572e in kudu's branch refs/heads/master from Alexey Serbin [ https://gitbox.apache.org/repos/asf?p=kudu.git;h=5b2287a ] [docs] RPC cancellation is now implemented This patch updates the documentation on the RPC design in rpc.md, refreshing the note on the RPC cancellation. Since KUDU-2065 has been addressed, it's now possible to cancel a remote call using the RpcController::Cancel() method (follow up JIRAs KUDU-2334 and KUDU-2011 are still open, but the functionality for RPC cancellation is there). Change-Id: I335b3c0fd965896aff7e1625fd01ae564c050b1a Reviewed-on: http://gerrit.cloudera.org:8080/16918 Tested-by: Kudu Jenkins Reviewed-by: Grant Henke <granthe...@apache.org> > OutboundTransfer::TransferStarted() isn't stateful enough with TLS socket > ------------------------------------------------------------------------- > > Key: KUDU-2334 > URL: https://issues.apache.org/jira/browse/KUDU-2334 > Project: Kudu > Issue Type: Bug > Components: rpc > Reporter: Michael Ho > Assignee: Michael Ho > Priority: Major > Fix For: 1.7.0 > > > Currently, {{OutboundTransfer::TransferStarted()}} returns true if we made > non-zero progress in {{OutboundTransfer::SendBuffer()}}. However, this may > not work well when using TLS socket as {{SSL_Write()}} is stateful. So, if we > called {{SSL_Write()}} with the buffer of the first slice in an > {{OutboundTransfer}} and failed with 0 bytes written and errno {{EAGAIN}} due > to send buffer being full, we need to try again with the exact buffer in the > first slice. However, it's possible that particular {{OutboundTransfer}} may > be cancelled or timed-out before the next call to > {{OutboundTransfer::SendBuffer()}} in {{Connection::WriteHandler()}}. In > which case, we will skip to the next {{OutboundTransfer}} in the queue and > call {{SSL_Write()}} with the buffers in the next {{OutboundTransfer}}, > leading to the error message: > {noformat} > failed to write to TLS socket: error:1409F07F:SSL > routines:SSL3_WRITE_PENDING:bad write retry:s3_pkt.c > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)