You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "James Baldassari (JIRA)" <ji...@apache.org> on 2013/04/05 21:35:15 UTC

[jira] [Commented] (AVRO-1122) Java: Avro RPC Requestor can block during handshake in async mode

    [ https://issues.apache.org/jira/browse/AVRO-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13623978#comment-13623978 ] 

James Baldassari commented on AVRO-1122:
----------------------------------------

I noticed that AVRO-1008 has been committed, so it is now possible to perform the handshake before the first async RPC.  However, if NettyTransceiver loses its connection to the server and has to reconnect, subsequent RPCs will block until the handshake is reestablished.

It would be great to eventually support an asynchronous handshake, but it raises the question of what should happen when code is trying to execute an RPC before the async handshake has completed.  Should the Requestor/Transceiver simply throw an Exception and let the client deal with it?  That would be one way to handle it, but it's more work for users of the library.  A compromise might be to have the Requestor/Transceiver throw an exception when the handshake has not completed but also provide an event listener interface (or future/callback) that allows other code to detect when the handshake is complete.  It should also be possible to implement an optional wrapper class that would provide the block-until-complete behavior.
                
> Java: Avro RPC Requestor can block during handshake in async mode
> -----------------------------------------------------------------
>
>                 Key: AVRO-1122
>                 URL: https://issues.apache.org/jira/browse/AVRO-1122
>             Project: Avro
>          Issue Type: Bug
>    Affects Versions: 1.6.3
>            Reporter: Mike Percy
>         Attachments: Screen Shot 2012-06-27 at 12.43.32 AM.png
>
>
> We are seeing an issue in Flume where the Avro RPC Requestor is blocking for long periods of time waiting for the Avro handshake to complete. Since we are using the API with Futures, this should not block.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira