[
https://issues.apache.org/jira/browse/HADOOP-2188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12580201#action_12580201
]
Raghu Angadi commented on HADOOP-2188:
--------------------------------------
receiveResponse() modifies {{calls}} without synchronizing on '{{this}}', but
other accesses to it do.
As you mentioned there is more synchronization involved. It is harder check the
correctness with 'isClosed' etc. For e.g. it took some time to see what happens
sendParam() returns silently when isClosed is true.
> RPC should send a ping rather than use client timeouts
> ------------------------------------------------------
>
> Key: HADOOP-2188
> URL: https://issues.apache.org/jira/browse/HADOOP-2188
> Project: Hadoop Core
> Issue Type: Improvement
> Components: dfs, ipc
> Reporter: Owen O'Malley
> Assignee: Hairong Kuang
> Attachments: ipc-timeout.patch, ipc-timeout1.patch,
> ipc-timeout2.patch, ipc-timeout3.patch, rpc-to.patch
>
>
> Current RPC (really IPC) relies on client side timeouts to find "dead"
> sockets. I propose that we have a thread that once a minute (if the
> connection has been idle) writes a "ping" message to the socket. The client
> can detect a dead socket by the resulting error on the write, so no client
> side timeout is required. Also note that the ipc server does not need to
> respond to the ping, just discard it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.