[ https://issues.apache.org/jira/browse/HBASE-16165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15500306#comment-15500306
]
Hudson commented on HBASE-16165:
--------------------------------
FAILURE: Integrated in Jenkins build HBase-1.3-JDK8 #17 (See [https://builds.apache.org/job/HBase-1.3-JDK8/17/])
HBASE-16165 Decrease RpcServer.callQueueSize before writeResponse causes (zhangduo: rev e9a5c60d139dd12cd5d395ef80344591242842c5)
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
> Decrease RpcServer.callQueueSize before writeResponse causes OOM
> ----------------------------------------------------------------
>
> Key: HBASE-16165
> URL: https://issues.apache.org/jira/browse/HBASE-16165
> Project: HBase
> Issue Type: Bug
> Components: IPC/RPC, rpc
> Affects Versions: 2.0.0, 1.3.0, 1.4.0, 1.1.6, 1.2.3, 0.98.22
> Reporter: Duo Zhang
> Assignee: Guanghao Zhang
> Priority: Minor
> Labels: trivial
> Fix For: 2.0.0, 1.3.0, 1.4.0, 1.1.7, 0.98.23, 1.2.4
>
> Attachments: HBASE-16165-branch-1.1.patch, HBASE-16165.patch
>
>
> In RpcServer, we use {{callQueueSizeInBytes}} to avoid queuing too many calls which causes
OOM. But in {{CallRunner.run}}, we decrease it before send the response back. And even after
calling {{sendResponseIfReady}}, the call object could stay in our heap for a long time if
we can not write out the response(That's why we need a Responder thread...). This makes it
possible that the actual size of all call object in heap is larger than {{maxQueueSizeInBytes}}
and causes OOM.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
|