[ 
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)

Reply via email to