[
https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896168#comment-13896168
]
Hiroshi Ikeda commented on HADOOP-10278:
----------------------------------------
{code}
@@ -1873,7 +1913,7 @@ private void processRpcRequest(RpcRequestHeaderProto
header,
Call call = new Call(header.getCallId(), header.getRetryCount(),
rpcRequest, this, ProtoUtil.convert(header.getRpcKind()), header
.getClientId().toByteArray());
- callQueue.put(call); // queue the call; maybe blocked here
+ callQueue.get().put(call); // queue the call; maybe blocked
here
incRpcCount(); // Increment the rpc count
}
{code}
It may be rare but it is logically possible that the queue gotten from
callQueue may be already replaced and drained when invoking put().
> Refactor to make CallQueue pluggable
> ------------------------------------
>
> Key: HADOOP-10278
> URL: https://issues.apache.org/jira/browse/HADOOP-10278
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: ipc
> Reporter: Chris Li
> Attachments: HADOOP-10278-atomicref.patch,
> HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch
>
>
> * Refactor CallQueue into an interface, base, and default implementation that
> matches today's behavior
> * Make the call queue impl configurable, keyed on port so that we minimize
> coupling
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)