[
https://issues.apache.org/jira/browse/HADOOP-6768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12875423#action_12875423
]
Todd Lipcon commented on HADOOP-6768:
-------------------------------------
Hi Xiao,
For your test case, I think it would be much simpler to just use a Writable
which throws IOE, rather than mocking out all of Socket, etc. If you look at
TestIPC in trunk, there was a case added by HADOOP-6723 that fixed a similar
bug for exceptions in readFields, but we didn't test writeFields. It should be
easy to extend that test case and share the code there.
Also please take a look at HADOOP-6762. which solves the specific problem of
InterruptedException but not the more general problem of IOE or RTE. Would
appreciate your thoughts on that issue.
> RPC client can response more efficiently when sendParam() got IOException
> -------------------------------------------------------------------------
>
> Key: HADOOP-6768
> URL: https://issues.apache.org/jira/browse/HADOOP-6768
> Project: Hadoop Common
> Issue Type: Improvement
> Components: ipc
> Affects Versions: 0.22.0
> Reporter: Xiao Kang
> Fix For: 0.22.0
>
> Attachments: HADOOP-6768.patch
>
>
> Under current RPC client implementation, when Client.Connection.sendParam()
> encounters IOException it just marks the exception and wait receiveResponse()
> thread to handle the exception. However, receiveResponse() may block
> ipc.ping.interval on socket read().
> This means that RPC client may wait ipc.ping.interval(typically 1 miniute)
> when exception in sendParam().
> It maybe not so reasonable in some situation. For example using "hadoop fs
> -put " a small file, DFSClient.close() will interupt renewLease() thread and
> it may wait 1 minute.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.