[
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 <[email protected]>
> 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)